⊗jsrtPmCoLSU 95 of 112 menu

Ngritja e Gjendjes në React

Shpesh disa komponentë duhet të reflektojnë të njëjtat të dhëna në ndryshim. Në React rekomandohet të ngrihet gjendja e përbashkët deri te prindi më i afërt i përbashkët. Le të shohim në një shembull.

Le të themi që duam të bëjmë një kalkulator të temperaturës së ujit. Ai do të përfaqësojë një input, ku përdoruesi do të fusë temperaturën, dhe një paragraf, ku do të shfaqet vendimi: uji është i lëngët, uji është i ngurtë, uji është i gaztë.

Le të themi që kalkulatori ynë përfaqëson një kontejner-komponent Calculator:

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

Le të nxjerrim input-in për futjen e temperaturës në komponentin TempInp, dhe paragrafin me vendimin - në komponentin Verdict:

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

Është e lehtë të kuptohet se si TempInp, ashtu edhe Verdict duhet të kenë gjendje me temperaturën. Në të njëjtën kohë është logjike, që kjo duhet të jetë e njëjta temperaturë: ndërsa të dhënat futen në input, duhet të shfaqet vendimi.

Në një rast të tillë rekomandohet të përdoret një metodë, e quajtur ngritja e gjendjes: gjendja, e përbashkët për dy (ose më shumë) komponentë ngrihet lart deri te prindi i tyre i përbashkët.

Në rastin tonë do të rezultojë, që gjendja me temperaturën duhet t'i përkasë komponentit Calculator, i cili do ta transmetojë atë në TempInp dhe Verdict si prope:

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

Në komponentin TempInp duhet të ketë një input për ndryshimin e temperaturës. Por, meqenëse kjo temperaturë është një prop i këtij komponenti, atëherë direkt në TempInp nuk mund ta ndryshojmë atë. Do të ishte e saktë të transmetohet nga komponenti Calculator një funksion i veçantë për ndryshimin e temperaturës:

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>; }

Mund, meqë ra fjala, të mos futet një funksion i ri, por të transmetohet në komponentin fëmijë funksioni setTemp:

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

Shkruani implementimin e komponentëve TempInp dhe Verdict.

Ktheni me mend 3 detyra, ku duhet të përdoret ngritja e gjendjes. Shkruani zgjidhjet e këtyre detyrave.

Shqip
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ne përdorim cookie për funksionimin e sajtit, analizën dhe personalizimin. Përpunimi i të dhënave bëhet në përputhje me Politikën e Privatësisë.
prano të gjitha konfiguro refuzo