⊗jsrtPmCoLSU 95 of 112 menu

Kuinua State katika React

Mara nyingi vijenzi kadhaa vinahitaji kuakisi data sawa inayobadilika. Katika React, inapendekezwa kuinua hali ya kawaida hadi mzazi wa karibu wa pamoja. Hebu tuangalie kwa mfano.

Tuseme tunataka kutengeneza kikokotoo cha joto cha maji. Itakuwa ni kiingizio, ambacho mtumiaji ataingiza joto, na aya, ambayo hitimisho litatolewa: maji ni kioevu, maji ni imara, maji ni gesi.

Tuseme kikokotoo chetu kinawakilisha kijenzi-kichwa Calculator:

function Calculator() { return <div> </div>; }

Tuondoe kiingizio cha kuingiza joto kwenye kijenzi TempInp, na aya yenye hitimisho - kwenye kijenzi Verdict:

function Calculator() { return <div> <Verdict /> <TempInp /> </div>; }

Ni rahisi kuelewa kuwa TempInp, na Verdict lazima kuwa na state yenye joto. Wakati huo huo, ni mantiki, kwamba hii inapaswa kuwa joto moja: kadiri data inavyoingizwa kwenye kiingizio hitimisho linapaswa kuonyeshwa.

Katika kesi kama hiyo, inapendekezwa kutumia mbinu, inayoitwa kuinua state: hali, ya kawaida kwa vijenzi viwili (au zaidi) inainuliwa hadi kwa mzazi wao wa pamoja.

Katika kesi yetu, itageuka kuwa state yenye joto inapaswa kuwa mali ya kijenzi Calculator, ambayo kitaipeleka kwa TempInp na Verdict kama props:

function Calculator() { const [temp, setTemp] = useState(0); return <div> <Verdict temp={temp} /> <TempInp temp={temp} /> </div>; }

Katika kijenzi TempInp kinapaswa kuwa na kiingizio cha kubadilisha joto. Lakini, kwa kuwa joto hili ni prop ya kijenzi hiki, basi, moja kwa moja katika TempInp kuibadilisha haiwezekani. Ni sahihi kutoka kwenye kijenzi Calculator kupeana kazi maalum kwa kubadilisha joto:

function Calculator() { const [temp, setTemp] = useState(0); function changeTemp(event) { setTemp(event.target.value); } return <div> <Verdict temp={temp} /> <TempInp temp={temp} changeTemp={changeTemp} /> </div>; }

Inawezekana, kwa njia, kutowekaanzisha kazi mpya, lakini kupeana kwenye kijenzi cha mtoto kazi setTemp:

function Calculator() { const [temp, setTemp] = useState(0); return <div> <Verdict temp={temp} /> <TempInp temp={temp} setTemp={setTemp} /> </div>; }

Andika utekelezaji wa vijenzi TempInp na Verdict.

Fikiria 3 kazi, ambazo zinahitaji kutumia kuinua state. Andika suluhisho za kazi hizi.

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