⊗jsrtPmCpPS 85 of 112 menu

Állapotok átadása gyermek komponenseknek a React-ban

Tegyük fel, hogy van egy termékek tömbünk:

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

Tegyük fel, hogy ez a tömb a Products komponensben található. Írjuk be ezeket a termékeket a komponens állapotába:

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

Most nézzük végig a termékeket egy ciklussal és jelenítsük meg őket valamilyen felépítésben:

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

Amint látod, a map ciklusunk tartalma elég bonyolult, főleg ha a termék felépítése a jövőben tovább bővül. Ez a bonyolultság megnehezíti a kód olvasását, megértését és karbantartását.

Jobb lenne kiszervezni a termék megjelenítéséért felelős kódot egy külön komponensbe. Nevezzük el Product-nek. Itt a komponensünk kódja:

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

Most használjunk a Products komponensen belül a map ciklusban Product gyermek komponenseket:

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

Amint látod, a ciklus kódja leegyszerűsödött és áttekinthetőbbé vált. Ezen kívül most már egy külön komponens felelős a termék megjelenítéséért, ahol elkészíthetjük, majd később szerkeszthetjük a termékek felépítését.

Technikailag az a helyzet, hogy a szülő komponens rendelkezik az adatokat tartalmazó állapottal, míg a gyermek komponensek ezeket az adatokat props-ként kapják meg és jelenítik meg az általunk kívánt módon.

A Users komponens állapotában a következő tömb található:

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

Menj végig ezen a tömbön egy ciklussal és jelenítsd meg az összes felhasználót a képernyőn. Hozz létre a felhasználó megjelenítéséhez egy külön User komponenst.

Magyar
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
A weboldal működéséhez, elemzéshez és személyre szabáshoz sütiket használunk. Az adatfeldolgozás a Adatvédelmi irányelvek szerint történik.
összes elfogadása beállítás elutasítás