⊗jsrtPmCpPS 85 of 112 menu

Meneruskan State ke Komponen Anak di React

Misalkan kita memiliki array produk:

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

Misalkan array ini berada di dalam komponen Products. Mari simpan produk-produk ini ke dalam state komponen:

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

Sekarang mari kita ulangi produk-produk dengan loop dan tampilkan 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, isi dari loop map kita cukup kompleks, terutama jika markup produk nantinya berkembang. Kompleksitas seperti ini menyulitkan pembacaan, pemahaman, dan pemeliharaan kode.

Akan lebih baik untuk memisahkan kode yang bertanggung jawab untuk menampilkan produk ke dalam komponen terpisah. Mari kita beri nama Product. Berikut kode komponen kita:

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

Sekarang mari di dalam komponen Products pada loop 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, kode loop sekarang menjadi lebih sederhana dan lebih mudah dipahami. Selain itu, sekarang untuk menampilkan produk menjadi tanggung jawab komponen terpisah, di mana kita dapat membuat, lalu mengedit markup produk.

Secara teknis, yang terjadi adalah komponen induk memiliki state dengan data, sedangkan komponen anak menerima data ini dalam bentuk props dan menampilkannya dengan cara yang kita inginkan.

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 loop dan tampilkan semua pengguna di layar. Buatlah untuk menampilkan pengguna komponen terpisah User.

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