⊗jsrtPmCoLSU 95 of 112 menu

Pengangkatan State dalam React

Sering kali beberapa komponen perlu memaparkan data yang sama yang berubah-ubah. Dalam React, adalah disyorkan untuk mengangkat state yang dikongsi kepada induk bersama yang terdekat. Mari kita lihat satu contoh.

Katakan kita ingin membuat kalkulator suhu air. Ia akan terdiri daripada input, di mana pengguna akan memasukkan suhu, dan perenggan, di mana keputusan akan dipaparkan: air adalah cecair, air adalah pepejal, air adalah gas.

Katakan kalkulator kami diwakili oleh komponen kontena Calculator:

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

Mari asingkan input untuk memasukkan suhu ke dalam komponen TempInp, dan perenggan dengan keputusan - ke dalam komponen Verdict:

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

Mudah untuk memahami bahawa kedua-dua TempInp dan Verdict harus mempunyai state untuk suhu. Pada masa yang sama, adalah logik bahawa ini sepatutnya suhu yang sama: apabila data dimasukkan ke dalam input, keputusan harus dipaparkan.

Dalam kes ini, adalah disyorkan untuk menggunakan teknik yang dipanggil pengangkatan state: state, yang dikongsi oleh dua (atau lebih) komponen dinaikkan ke atas kepada induk bersama mereka.

Dalam kes kami, ini bermakna state untuk suhu harus dimiliki oleh komponen Calculator, yang akan menghantarnya kepada TempInp dan Verdict sebagai props:

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

Dalam komponen TempInp, harus ada input untuk mengubah suhu. Tetapi, oleh kerana suhu ini adalah props bagi komponen ini, maka secara langsung dalam TempInp, ia tidak boleh diubah. Cara yang betul adalah dengan menghantar dari komponen Calculator fungsi khas untuk mengubah suhu:

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

Boleh juga, dengan cara, tidak memperkenalkan fungsi baru, tetapi menghantar fungsi setTemp kepada komponen anak:

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

Tulis pelaksanaan komponen TempInp dan Verdict.

Cari 3 masalah yang memerlukan penggunaan pengangkatan state. Tulis penyelesaian masalah-masalah tersebut.

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