Lingua-e
JavaScript

¿Qué significa Each child in a list should have a unique "key" prop?

← Errores

Esta advertencia de React (que se convierte en error en algunos contextos) aparece cuando renderizas una lista de elementos sin proporcionar una prop key única en cada elemento. React usa las keys para reconciliar eficientemente las actualizaciones de listas: sin ellas no puede determinar qué elementos cambiaron, se agregaron o se eliminaron.

Por qué ocurre

  • Iterar sobre un array con .map() y retornar elementos JSX sin una prop key.
  • Usar el índice del array como key cuando los elementos pueden reordenarse o eliminarse.
  • Envolver elementos de lista en un Fragment sin pasar key al Fragment.
  • Retornar múltiples elementos hermanos desde un componente usado en un contexto de lista.

Ejemplos

JavaScript

Código que causa el error

function UserList({ users }) {
  return (
    <ul>
      {users.map((user) => (
        <li>{user.name}</li>
      ))}
    </ul>
  );
}

Error en la terminal

Warning: Each child in a list should have a unique "key" prop.
Check the render method of `UserList`.

Cómo solucionarlo

Agrega una prop key estable y única a cada elemento retornado dentro de .map(). Usa el ID de base de datos del registro o un identificador único estable, no el índice del array. Los índices de array causan bugs sutiles cuando la lista se reordena o se eliminan elementos del medio.

Código corregido

function UserList({ users }) {
  return (
    <ul>
      {users.map((user) => (
        <li key={user.id}>{user.name}</li>
      ))}
    </ul>
  );
}

Errores relacionados

¿Listo para practicar tu inglés en el trabajo?

Lingua-e tiene ejercicios interactivos basados en conversaciones reales de developers: standups, code reviews, retrospectivas y más. Practica hasta que salga solo.

Prueba Lingua-e gratis