⊗jsrtPmCpPS 85 of 112 menu

Overførsel af tilstande til underkomponenter i React

Lad os sige, at vi har en række med produkter:

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

Lad os sige, at denne række er placeret i komponenten Products. Lad os gemme disse produkter i komponentens tilstand:

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

Lad os nu gennemgå produkterne i en løkke og udskrive dem i et eller andet layout:

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

Som du kan se, er indholdet af vores map-løkke ret komplekst, især hvis produktlayoutet vokser sig større senere. Sådan en kompleksitet gør det sværere at læse, forstå og vedligeholde koden.

Det ville være bedre at flytte koden, der står for visningen af produktet, til en separat komponent. Lad os kalde den Product. Her er koden til vores komponent:

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

Lad os nu inde i komponenten Products i map-løkken bruge underkomponenterne 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>; }

Som du kan se, er løkkekoden nu blevet forenklet og er blevet mere forståelig. Derudover står en separat komponent nu for visningen af produktet, hvor vi kan lave og derefter redigere produktlayoutet.

Teknisk set har vi, at den overordnede komponent har en tilstand med data, og de underordnede komponenter modtager disse data i form af props og viser dem på den måde, vi har brug for.

I komponenttilstanden Users er følgende række givet:

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

Gennemgå denne række med en løkke og vis alle brugere på skærmen. Opret en separat komponent User til visning af brugeren.

Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis