Kuunganisha Viingizo kwa Kitu katika React
Acha kwenye hali hifadhiwe kitu:
jsxconst initObj = {
prop1: 'value1',
prop2: 'value2',
prop3: 'value3',
}
function App() {
const [obj, setObj] = useState(initObj);
return <div>
{obj.prop1}-{obj.prop2}-{obj.prop3}
</div>;
}
Wacha tuonyeshe kila sifa ya kitu chetu katika kizingilio tofauti:
jsxfunction App() {
const [obj, setObj] = useState(initObj);
return <div>
<input value={obj.prop1} />
<input value={obj.prop2} />
<input value={obj.prop3} />
<br />
{obj.prop1}-{obj.prop2}-{obj.prop3}
</div>;
}
Sasa tuiunganishe kila kizingilio
tukio onChange. Kama kichakataji
tuteue utendaji wa pamoja:
jsxfunction App() {
const [obj, setObj] = useState(initObj);
return <div>
<input value={obj.prop1} onChange={event => handleChange('prop1', event)} />
<input value={obj.prop2} onChange={event => handleChange('prop2', event)} />
<input value={obj.prop3} onChange={event => handleChange('prop3', event)} />
<br />
{obj.prop1}-{obj.prop2}-{obj.prop3}
</div>;
}
Kama unavyoona, utendaji handleChange
hupokea jina la sifa inayofanana ya kitu
kama parameta ya kwanza.
Wacha tuandike utekelezaji wa utendaji wetu:
jsxfunction handleChange(prop, event) {
const copy = Object.assign({}, obj);
copy[prop] = event.target.value;
setObj(copy);
}
Utekelezaji huu unafanya kazi, lakini unaweza kurahisishwa, kwa kutumia majina yanayoweza kuhesabiwa ya sifa za kitu:
jsxfunction handleChange(prop, event) {
setObj({...obj, ...{[prop]: event.target.value}});
}
Wacha tuchanganye msimbo wote pamoja:
jsxfunction App() {
const [obj, setObj] = useState(initObj);
function handleChange(prop, event) {
setObj({...obj, ...{[prop]: event.target.value}});
}
return <div>
<input value={obj.prop1} onChange={event => handleChange('prop1', event)} />
<input value={obj.prop2} onChange={event => handleChange('prop2', event)} />
<input value={obj.prop3} onChange={event => handleChange('prop3', event)} />
<br />
{obj.prop1}-{obj.prop2}-{obj.prop3}
</div>;
}
Acha kwenye hali hifadhiwe kitu chenye tarehe:
jsxconst initDate = {
year: 2025,
month: 12,
day: 31,
}
Onyesha kwenye aya mwaka, mwezi na siku kutoka kwa tarehe, iliyohifadhiwa kwenye hali, na pia siku ya wiki, inayofanana nayo.
Rekebisha kazi iliyotangulia, kwa kuongeza viingizo vitatu kwa ajili ya kuhariri tarehe.