News from the Field
A channel with tips on modern AI development. Join!
⊗jsrtPmHkCUp 10 of 47 menu
◀ ▶

Kontekstin päivittäminen Reactissa

Tässä oppitunnissa tarkastelemme komponenttien päivittämistä kontekstin arvon muuttuessa. Oletetaan, että haluat kontekstin muuttuvan.

Tässä tapauksessa on hyödyllistä käyttää kontekstia yhdessä tilojen kanssa. Muutetaan hieman laatikko-sovellustamme, jota teimme edellisellä oppitunnilla, ja tehdään niin, että painiketta napsauttamalla välitetty arvo muuttuu arvoksi 'metal box :)'.

Joten, otetaan tiedostomme App ja BigBox-komponentin jälkeen piirretään painike:

function App() { return ( <MyContext.Provider value="small box :)"> <BigBox /> <button>click</button> </MyContext.Provider> ); }

Seuraavaksi tuodaan useState-hookki ja luodaan tila name, jonka arvo muuttuu painiketta napsautettaessa. Asetetaan sille alkuarvoksi sama arvo, jonka välitimme kontekstin arvona, eli 'small box :)':

function App() { const [name, setName] = useState('small box :)'); }

Tällä kertaa kontekstilla emme välitä merkkijonoa, vaan tilan name:

<MyContext.Provider value={name}> <BigBox /> <button>click</button> </MyContext.Provider>

Viimeisenä vaiheena käsittelemme painikkeen napsautuksen ja asetamme setName-funktion avulla uuden tilan arvoksi 'metal box :)'. Tämän jälkeen voit painaa painiketta ja tarkastaa tuloksen:

<button onClick={() => { setName('metal box :)'); }}>click</button>

Käytä edellisen oppitunnin tehtäviä ratkoessasi luomaasi sovellusta. Luo tila age, jonka välität kontekstin avulla App-komponentista luvun sijaan, aseta sille alkuarvo 50. Lisää Parent-komponentin alle App-komponenttiin painike, jota napsautettaessa tilan age arvo pienenee 2:lla.

← →
↑
Suomi▼
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää