Liste di reazione


In React, renderai gli elenchi con un tipo di loop.

Il metodo array JavaScript map()è generalmente il metodo preferito.

Se hai bisogno di un aggiornamento sul map()metodo, controlla la sezione ES6 .


Esempio:

Eseguiamo il rendering di tutte le auto del nostro garage:

function Car(props) {
  return <li>I am a { props.brand }</li>;
}

function Garage() {
  const cars = ['Ford', 'BMW', 'Audi'];
  return (
    <>
      <h1>Who lives in my garage?</h1>
      <ul>
        {cars.map((car) => <Car brand={car} />)}
      </ul>
    </>
  );
}

ReactDOM.render(<Garage />, document.getElementById('root'));

Quando esegui questo codice nel tuo create-react-app, funzionerà ma riceverai un avviso che non è stata fornita alcuna "chiave" per le voci dell'elenco.


w3schools CERTIFIED . 2022

Ottieni la certificazione!

Completa i moduli React, fai gli esercizi, fai l'esame e diventa certificato w3schools!!

ISCRIVITI A $95

Chiavi

Le chiavi consentono a React di tenere traccia degli elementi. In questo modo, se un elemento viene aggiornato o rimosso, solo quell'elemento verrà ridisegnato anziché l'intero elenco.

Le chiavi devono essere uniche per ogni fratello. Ma possono essere duplicati a livello globale.

In genere, la chiave dovrebbe essere un ID univoco assegnato a ciascun elemento. Come ultima risorsa, puoi utilizzare l'indice dell'array come chiave.

Esempio:

Ridimensioniamo il nostro esempio precedente per includere le chiavi:

function Car(props) {
  return <li>I am a { props.brand }</li>;
}

function Garage() {
  const cars = [
    {id: 1, brand: 'Ford'},
    {id: 2, brand: 'BMW'},
    {id: 3, brand: 'Audi'}
  ];
  return (
    <>
      <h1>Who lives in my garage?</h1>
      <ul>
        {cars.map((car) => <Car key={car.id} brand={car.brand} />)}
      </ul>
    </>
  );
}

ReactDOM.render(<Garage />, document.getElementById('root'));


Mettiti alla prova con gli esercizi

Esercizio:

Aggiungi l'attributo che consente a React di tenere traccia degli elementi negli elenchi.

function GroceryList() {
  const items = [
    {id: 1, name: 'bread'},
    {id: 2, name: 'milk'},
    {id: 3, name: 'eggs'}
  ];

  return (
    <>
      <h1>Grocery List</h1>
      <ul>
        {items.map((item) => <li ={item.id}>{item.name}</li>)}
      </ul>
    </>
  );
}

ReactDOM.render(<GroceryList />, document.getElementById('root'));