En React es muy común mostrar listas de datos (enemigos, items, jugadores, misiones, etc.).
Para renderizar listas usamos .map(), pero siempre debemos agregar una key única a cada elemento.
.map()function ListaEnemigos() {
const enemigos = [
"Goblin",
"Orco",
"Esqueleto",
"Dragón"
];
return (
<ul>
{enemigos.map((enemigo, index) => (
<li key={index}>{enemigo}</li>
))}
</ul>
);
}
¡Importante! Aunque usar index como key funciona, **no es la mejor práctica**. React prefiere una key única y estable.
function Inventario() {
const items = [
{ id: 1, nombre: "Espada Legendaria", rareza: "Épica" },
{ id: 2, nombre: "Poción de Vida", rareza: "Común" },
{ id: 3, nombre: "Anillo de Fuego", rareza: "Rara" },
];
return (
<div>
<h3>Inventario</h3>
<ul>
{items.map(item => (
<li key={item.id}>
{item.nombre} — <strong>{item.rareza}</strong>
</li>
))}
</ul>
</div>
);
}
Las keys ayudan a React a:
⚠️ Si no pones key o usas el índice como key en listas dinámicas, puedes tener bugs extraños.
function HabilidadesJugador() {
const habilidades = [
{ id: "h1", nombre: "Golpe Fuerte", daño: 45, tipo: "Físico" },
{ id: "h2", nombre: "Bola de Fuego", daño: 60, tipo: "Mágico" },
{ id: "h3", nombre: "Curación Rápida", daño: 0, tipo: "Soporte" },
];
return (
<div className="habilidades">
{habilidades.map(habilidad => (
<div key={habilidad.id} className="habilidad-card">
<h4>{habilidad.nombre}</h4>
<p>Daño: {habilidad.daño} | Tipo: {habilidad.tipo}</p>
</div>
))}
</div>
);
}
Prueba esto en tu proyecto React o en CodeSandbox:
.map().key usando el id de cada item (crea un array de objetos).