⊗jsrtPmFmsII 56 of 112 menu

Kufanya Kazi na Viingilio kwenye React

Kufanya kazi na viingilio katika React hufanyika kwa kutumia hali (states). Kila kiingilio hupewa hali yake inayobeba value ya kiingilio.

Hebu tuangalie kwa mfano. Tuseme tuna kiingilio:

function App() { return <div> <input /> </div>; }

Tuseme pia tuna hali (state):

function App() { const [value, setValue] = useState('maandishi'); return <div> <input /> </div>; }

Hebu tuunganishe hali yetu kwa sifa value ya kiingilio:

function App() { const [value, setValue] = useState('maandishi'); return <div> <input value={value} /> </div>; }

Katika kesi hii, itatokea kwamba mabadiliko yoyote katika hali, yatabadilisha maandishi ya kiingilio kwa nguvu (reactively).

Hata hivyo, hii inaleta athari ya kuvutia: sasa ukizindua msimbo kwenye kivinjari, haiwezekani kubadilisha maandishi kwenye kiingilio! Kwa nini: kwa sababu unapoandika maandishi kwenye kiingilio haibadilishi hali value, ipasavyo, maandishi kwenye kiingilio hayapaswi kubadilika.

Jaribu mwenyewe. Nakili msimbo wangu na uianzishe kwenye mfumo wako. Jaribu kubadilisha maandishi kwenye kiingilio - hutafanikiwa. Fungua konsole ya kivinjari - utaona onyo ndani yake kutoka kwa React. Onyo hili linatuonyesha kwamba tumeunganisha hali kwa kiingilio, lakini kwa kufanya hivyo tumezuia kiingilio.

Hebu tufanye ili iwezekanavyo kuandika maandishi kwenye kiingilio chetu. Kwa hili inahitajika kufanya ili wakati wa kuandika hali yetu ibadilike kwa thamani ya sasa ya kiingilio.

Kuanza, kwa hili inahitajika kuweka kwenye kiingilio tukio onChange:

function App() { const [value, setValue] = useState('maandishi'); return <div> <input value={value} onChange={handleChange} /> </div>; }

Tukio hili katika React linatenda kwa njia tofauti ikilinganishwa na JS safi. Katika React linafanya kazi mara moja kwa mabadiliko yoyote ya kiingilio. Hiyo ni wakati wa kuandika au kufuta herufi.

Hebu sasa tuongeze kichakuzi (handler) cha tukio letu:

function App() { const [value, setValue] = useState('maandishi'); function handleChange() { } return <div> <input value={value} onChange={handleChange} /> </div>; }

Katika kichakuzi hiki tunapaswa kusoma maandishi ya sasa ya kiingilio na kuiweka kwenye hali kwa kutumia kitendo setValue.

Shida ni kwamba this cha kitendo hiki hakitaelekeza kwenye kiingilio chetu - hii ni sifa ya React. Ili kupata kipengele (element) ambapo tukio limetokea, inatubidi tumie event.target:

function App() { const [value, setValue] = useState('maandishi'); function handleChange(event) { console.log(event.target); // kiunga cha kipengele cha DOM cha kiingilio } return <div> <input value={value} onChange={handleChange} /> </div>; }

Hebu tutoe maandishi ya sasa ya kiingilio kwa kutumia event.target:

function App() { const [value, setValue] = useState('maandishi'); function handleChange(event) { console.log(event.target.value); // maandishi ya sasa ya kiingilio } return <div> <input value={value} onChange={handleChange} /> </div>; }

Na sasa tuandike maandishi ya kiingilio kwenye hali yetu:

function App() { const [value, setValue] = useState('maandishi'); function handleChange(event) { setValue(event.target.value); } return <div> <input value={value} onChange={handleChange} /> </div>; }

Sasa tunaweza kuandika maandishi kwenye kiingilio. Wakati huo hali value itakuwa na maandishi ya sasa ya kiingilio kila wakati.

Tunaweza kuhakikisha kwa urahisi kwa hili. Hebu tuonyeshe yaliyomo ya maandishi yetu kwenye aya. Katika kesi hii unapoandika maandishi kwenye kiingilio maandishi yaliyoandikwa yataonekana kiotomatiki kwenye aya:

function App() { const [value, setValue] = useState(''); function handleChange(event) { setValue(event.target.value); } return <div> <input value={value} onChange={handleChange} /> <p>maandishi: {value}</p> </div>; }

Tunaweza kuandika upya kwa muundo mfupi zaidi kwa kutumia kitendo kisichojulikana (anonymous) cha mshale:

function App() { const [value, setValue] = useState(''); return <div> <input value={value} onChange={event => setValue(event.target.value)} /> <p>maandishi: {value}</p> </div>; }

Kwa hivyo, kwa kiingilio chochote kufanya kazi tunahitaji yaftuatayo: kuunda hali (state) kwa hiki kiingilio, kuunganisha hali kwa sifa value ya kiingilio, kuweka tukio onChange kwenye kiingilio, katika kichakuzi (handler) cha tukio kubadilisha hali ya kiingilio kwa maandishi yake.

Shughuli hizi zitahitaji kufanywa kwa kila kiingilio. Hiyo ni, ikiwa una viingilio viwili, basi utakuwa na hali mbili na vitendo viwili-vichakuzi (vye handler) vya tukio onChange.

Fanya viingilio viwili. Maandishi ya kwanza kiingilio yaonekane kwenye aya ya kwanza, na maandishi ya kiingilio cha pili - kwenye aya ya pili.

Kiswahili
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Tunatumia kuki kwa ajili ya uendeshaji wa tovuti, uchambuzi na ubinafsishaji. Usindikaji wa data unafanyika kulingana na Sera ya Faragha.
kubali yote sanidi kataa