Volver a la lista

Listas y claves: renderizar arreglos en la pantalla

Explica cómo renderizar un array en React usando `map`, por qué es necesario el prop `key` y qué ocurre si se usa incorrectamente.

Principiante
|
5min
|
Verificado (2026-07)
Progreso0/55 (0%)

Listas y claves — Dibujar arreglos en la pantalla

Al finalizar este tema

Comprenderá cómo renderizar arreglos en React y el papel de las claves.


Renderizado de listas con map

Para mostrar datos de un arreglo en la pantalla, utilice map:

jsx
const fruits = ["Apple", "Banana", "Cherry"];

function FruitList() {
  return (
    <ul>
      {fruits.map(fruit => (
        <li key={fruit}>{fruit}</li>
      ))}
    </ul>
  );
}

Convierte cada elemento del array a JSX. Sin embargo, existe una prop especial llamada key.


¿Por qué se necesitan las claves (keys)?

Cuando se agregan, eliminan o reordenan elementos en una lista, React debe saber qué elemento ha cambiado. La clave actúa como un identificador único para cada elemento.

Sin claves, React compara solo por posición:

text
Anterior: [A, B, C]
Posterior: [X, A, B, C]

Si no hay clave (key), React determina que "el primero cambió de A a X, el segundo de B a A, ..." en su totalidad. Si existe una clave, solo detecta que "X se ha añadido".


Reglas para las claves

jsx
// Si hay un ID único — lo mejor
{users.map(user => (
  <UserCard key={user.id} user={user} />
))}

// Si no hay valor único en los datos — segunda opción
{items.map(item => (
  <li key={item.name}>{item.name}</li>
))}

La clave debe ser única entre los hermanos. El ID de la base de datos es la mejor opción.


Por qué no se deben usar índices como claves

jsx
// Evitar
{items.map((item, index) => (
  <li key={index}>{item}</li>
))}

Cuando se agregan, eliminan o reordenan elementos, el índice cambia. Un elemento que era "el número 3" pasa a ser "el número 2" tras su eliminación. React asume erróneamente que es el mismo elemento porque la clave (key) coincide.

Resultado: los valores de los campos de entrada se asignan incorrectamente a otros elementos, o las animaciones se comportan de manera extraña.

Cuándo está permitido usar índices:

  • Cuando la lista es fija y nunca cambia.
  • Cuando los elementos no tienen estado ni campos de entrada.

En cualquier otro caso, utilice un valor único como clave.


La clave (key) no es una prop

jsx
function UserCard({ key, user }) {
  // La clave no es accesible aquí!
}

La propiedad key es un atributo especial utilizado internamente por React. No se puede acceder a ella desde los componentes hijos mediante props.key. Si necesitas un identificador, pásalo como una propiedad separada:

jsx
<UserCard key={user.id} userId={user.id} user={user} />

Clave principal

Convierte el arreglo a JSX usando map y asigna una clave única a cada elemento. La clave es necesaria para que React detecte eficientemente las inserciones, eliminaciones y reordenamientos de los elementos. Usa un ID único de los datos como clave. Evita usar el índice.

💬 Preguntas y comentarios

0 comentarios

Puedes publicar sin iniciar sesión. Los comentarios de invitados no pueden editarse ni eliminarse después.

0/2000

Cargando...