⊗jsrtPmCpPS 85 of 112 menu

Passaggio degli stati ai componenti figli in React

Supponiamo di avere un array di prodotti:

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

Supponiamo che questo array si trovi nel componente Products. Memorizziamo questi prodotti nello stato del componente:

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

Ora iteriamo sui prodotti con un ciclo e visualizziamoli in un qualche 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>; }

Come puoi vedere, il contenuto del nostro ciclo map è abbastanza complesso, specialmente se il markup del prodotto dovesse crescere in futuro. Tale complessità rende difficile la lettura, la comprensione e la manutenzione del codice.

Sarebbe meglio estrarre il codice responsabile della visualizzazione del prodotto in un componente separato. Chiamiamolo Product. Ecco il codice del nostro componente:

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

Ora all'interno del componente Products nel ciclo map utilizzeremo i componenti figli 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>; }

Come puoi vedere, ora il codice del ciclo è diventato più semplice e più comprensibile. Inoltre, ora la visualizzazione del prodotto è gestita da un componente separato, in cui possiamo creare e poi modificare il markup dei prodotti.

Tecnicamente, abbiamo che il componente genitore ha uno stato con i dati, mentre i componenti figli ricevono questi dati sotto forma di props e li visualizzano nel modo da noi desiderato.

Nello stato del componente Users è dato il seguente array:

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

Itera su questo array con un ciclo e visualizza tutti gli utenti sullo schermo. Crea un componente separato User per la visualizzazione dell'utente.

Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta