Saltar al contenido
Curso de React
Todos los cursos Ir al ejercicio →

Listas, claves y renderizado condicional

  • ⏱ 50 minutos
  • 📶 Nivel: principiante
  • 🧩 Incluye ejercicio

💡 🎯 Al terminar esta lección podrás…

  • Dibujar listas de datos con map.
  • Elegir una key correcta.
  • Mostrar u ocultar contenido con ternario, && y retorno anticipado.
  • Filtrar y ordenar sin duplicar estado.

1.Dibujar listas con map

En casi toda aplicación hay listas: productos, mensajes, tareas, resultados. En React no escribes cada elemento a mano: transformas un array de datos en un array de JSX con map, y React lo dibuja.

⚛️ De datos a elementos
Consola
  1. Tienes datos: un array (de textos, números u objetos).
  2. map recorre cada elemento y devuelve un <li> por cada uno.
  3. React recibe el array de elementos y los dibuja en orden.

Si cambias el array (por ejemplo, con estado) y React vuelve a dibujar, la lista se actualiza sola. No tienes que añadir ni quitar <li> a mano.

2.Listas de objetos y componentes

Lo normal es que cada elemento sea un objeto con varios datos. Un patrón muy limpio es crear un componente para el elemento y pasarle los datos como props:

⚛️ Una lista de objetos con un componente por elemento
Consola

💡 Consejo · Spread de props

Si el objeto tiene exactamente las props que espera el componente, puedes pasarlas de golpe: <Fila key={p.id} {...p} />. Úsalo con moderación: pasar las props de forma explícita deja claro qué recibe cada componente.

3.La prop key: la identidad de cada elemento

Seguramente notaste key={...} en los ejemplos. Es obligatoria en las listas: key le dice a React qué elemento es cuál entre un dibujo y el siguiente, para actualizar solo lo necesario y no mezclar su estado.

Ejecuta este ejemplo y abre la consola: React te avisa si falta la clave.

⚛️ ¿Qué pasa si falta la key?
Consola
Regla de la clavePor qué
Única entre hermanos de la misma listaDos elementos con la misma clave se confunden
Estable: no cambia entre dibujosSi cambia, React cree que es otro elemento y lo reconstruye
Mejor un id de los datosIdentifica al dato aunque cambie de posición
Evita Math.random()Genera una clave nueva en cada dibujo y destruye el estado
Índice solo en listas fijas que nunca se reordenanSi se inserta, borra u ordena, las claves ya no corresponden a los mismos datos

⚠️ Importante · Dónde va la key

La key va en el elemento más externo que devuelve map (el <li> o el componente <Fila />), no dentro. Y no se recibe como prop: React la usa internamente.

4.Mostrar u ocultar: renderizado condicional

Como el JSX es JavaScript, decidir qué mostrar se hace con las herramientas de siempre. Hay tres patrones que usarás todos los días:

PatrónCuándo usarloEjemplo
Ternario ? :Dos opciones: A o B{conectado ? <Panel /> : <Login />}
AND &&Mostrar algo o nada{hayError && <p>Error</p>}
Retorno anticipadoCasos especiales al inicio del componenteif (cargando) return <p>Cargando…</p>;
⚛️ Tres formas de decidir qué se ve
Consola

⚠️ Importante · La trampa del 0

{lista.length && <Lista />} dibuja un 0 cuando la lista está vacía, porque 0 && … vale 0 y React sí muestra los números. Escribe una comparación: {lista.length > 0 && <Lista />}.

5.Filtrar y ordenar antes de dibujar

Lo que map dibuja puede venir de filter o sort. Calcula la lista visible antes del return y deja el JSX simple. Importante: no guardes en estado lo que puedes calcular a partir de otro estado.

⚛️ Un filtro con estado
Consola

6.Errores frecuentes

📒 Apuntes para llevar

  • Con lista.map(x => <li key={x.id}>…</li>) conviertes datos en elementos.
  • Toda lista necesita una key única y estable, preferiblemente el id del dato.
  • La key va en el elemento más externo que devuelve map.
  • Renderizado condicional: ternario (a ? b : c), && (algo o nada) y retorno anticipado.
  • Cuidado con {n && …}: si n es 0, se dibuja un 0.
  • Filtra y ordena antes del return; no guardes en estado lo que puedes calcular.
  • Usa [...lista].sort() para no mutar el original.

7.Glosario

TérminoSignificado
mapMétodo de arrays que transforma cada elemento y devuelve un array nuevo.
keyIdentificador único y estable que React usa para distinguir los elementos de una lista.
Renderizado condicionalDecidir qué se muestra según una condición.
Valor derivadoDato calculado a partir de otro estado o props; no se guarda aparte.
Retorno anticipadoreturn temprano en un componente para manejar un caso especial.
ReconciliaciónProceso con el que React compara dibujos y actualiza solo lo que cambió.

🧠 Comprueba lo aprendido

Elige una respuesta en cada pregunta. Verás al instante si acertaste y por qué.

¿Para qué sirve la prop key?

¿Qué es lo más recomendable como key?

¿Qué dibuja {items.length && <Lista />} cuando items está vacío?

¿Cuál es el patrón adecuado para «A o B»?

¿Cómo ordenas una lista sin modificar el original?

Tu progreso se guarda en este navegador y se refleja en el índice del curso.

💡 🚀 ¡Ahora te toca!

La práctica fija lo aprendido. Pasa al ejercicio de esta lección.

Ir al ejercicio