⊗jsrtPmHkCUp 10 of 47 menu

Mengemaskini Konteks dalam React

Dalam pelajaran ini, kita akan membincangkan pengemaskinian komponen apabila nilai konteks berubah. Katakan anda ingin konteks berubah.

Dalam kes ini, adalah berguna untuk menggunakan konteks bersama-sama dengan keadaan (state). Mari kita ubah suai sedikit aplikasi kotak kami, yang kami buat dalam pelajaran lepas dan buat supaya apabila butang ditekan nilai yang dihantar menjadi 'metal box :)'.

Jadi, ambil fail App kami dan selepas BigBox lukiskan butang:

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

Seterusnya, import hook useState dan wujudkan keadaan (state) name, nilainya akan berubah apabila butang ditekan. Mari kita berikan nilai awal yang sama dengan nilai yang kami terus hantar sebagai nilai konteks, iaitu 'small box :)':

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

Kali ini, kami akan menghantar keadaan (state) name sebagai konteks, bukan rentetan:

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

Sebagai langkah terakhir, kami akan memanggil pengendali klik butang dan menggunakan fungsi setName untuk menetapkan nilai baru keadaan (state) kepada 'metal box :)'. Selepas ini, anda boleh menekan butang dan menyemak hasilnya:

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

Gunakan aplikasi yang dicipta oleh anda apabila menyelesaikan masalah untuk pelajaran sebelumnya. Wujudkan keadaan (state) age, yang akan anda hantar menggunakan konteks daripada App sebagai ganti nombor, tetapkan nilai awalnya kepada 50. Tambahkan butang di bawah komponen Parent dalam App, di mana setiap kali diklik, nilai keadaan (state) age akan berkurang sebanyak 2.

Melayu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan kuki untuk operasi laman web, analisis dan personalisasi. Pemprosesan data dijalankan mengikut Polisi Kerahsiaan.
terima semua tataletak tolak