⊗jsrtPmCpPS 85 of 112 menu

Menghantar State ke Komponen Anak dalam React

Katakan kita mempunyai array produk:

const initProds = [ {id: id(), name: 'product1', cost: 100}, {id: id(), name: 'product2', cost: 200}, {id: id(), name: 'product3', cost: 300}, ];

Katakan array ini terletak dalam komponen Products. Mari simpan produk-produk ini dalam state komponen:

function Products() { const [prods, setProds] = useState(initProds); }

Sekarang mari kita ulangi produk-produk dengan gelung dan paparkan mereka dalam beberapa markup:

function Products() { const [prods, setProds] = useState(initProds); const items = prods.map(prod => { return <div key={prod.id}> name: <span>{prod.name}</span>, cost: <span>{prod.cost}</span> </div>; }); return <div> {items} </div>; }

Seperti yang anda lihat, kandungan gelung map kami cukup kompleks, terutamanya jika markup produk berkembang pada masa hadapan. Kerumitan sedemikian menyukarkan pembacaan, pemahaman dan penyenggaraan kod.

Adalah lebih baik untuk mengasingkan kod yang bertanggungjawab untuk memaparkan produk ke dalam komponen berasingan. Mari namakannya Product. Berikut adalah kod komponen kami:

function Product({ name, cost }) { return <div> name: <span>{name}</span>, cost: <span>{cost}</span> </div>; }

Sekarang mari dalam komponen Products dalam gelung map kita gunakan komponen anak Product:

function Products() { const [prods, setProds] = useState(initProds); const items = prods.map(prod => { return <Product key ={prod.id} name={prod.name} cost={prod.cost} />; }); return <div> {items} </div>; }

Seperti yang anda lihat, kini kod gelung telah dipermudahkan dan menjadi lebih mudah difahami. Selain itu, kini paparan produk diurus oleh komponen berasingan, di mana kita boleh membuat, dan kemudian menyunting markup produk.

Dari segi teknikal, kita mempunyai situasi di mana komponen ibu bapa mempunyai state dengan data, dan komponen anak menerima data ini dalam bentuk props dan memaparkannya dengan cara yang kita kehendaki.

Dalam state komponen Users diberikan array berikut:

const initUsers = [ {id: id(), name: 'user1', surname: 'surn1', age: 30}, {id: id(), name: 'user2', surname: 'surn2', age: 31}, {id: id(), name: 'user3', surname: 'surn3', age: 32}, ];

Ulangi array ini dengan gelung dan paparkan semua pengguna pada skrin. Cipta komponen berasingan User untuk memaparkan pengguna.

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