Listas de reacción


En React, renderizarás listas con algún tipo de bucle.

El método de matriz de JavaScript map()es generalmente el método preferido.

Si necesita un repaso del map()método, consulte la sección ES6 .


Ejemplo:

Rendericemos todos los autos de nuestro garaje:

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'));

Cuando ejecute este código en su create-react-app, funcionará, pero recibirá una advertencia de que no se proporciona una "clave" para los elementos de la lista.


w3schools CERTIFIED . 2022

¡Obtener la certificación!

¡Complete los módulos de React, haga los ejercicios, tome el examen y obtenga la certificación w3schools!

$95 INSCRÍBETE

Teclas

Las claves permiten a React realizar un seguimiento de los elementos. De esta forma, si se actualiza o elimina un elemento, solo se volverá a representar ese elemento en lugar de la lista completa.

Las claves deben ser únicas para cada hermano. Pero se pueden duplicar globalmente.

Generalmente, la clave debe ser una identificación única asignada a cada elemento. Como último recurso, puede utilizar el índice de matriz como clave.

Ejemplo:

Refactoricemos nuestro ejemplo anterior para incluir claves:

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'));


Ponte a prueba con ejercicios

Ejercicio:

Agregue el atributo que permite a React realizar un seguimiento de los elementos en las listas.

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'));