React
Las piezas que se repiten
Reconoce
Pregunta 1 de 5
function BotonComprar() {
return <button>Comprar</button>;
}¿Qué es BotonComprar?
1
Componiza la lista
Convierte una UI repetitiva en un componente reutilizable con props
function ListaDeClientes() {
return (
<div>
<div className="card">
<h2>Ana García</h2>
<p>Plan: Pro</p>
</div>
<div className="card">
<h2>Luis Pérez</h2>
<p>Plan: Básico</p>
</div>
<div className="card">
<h2>Marta Ruiz</h2>
<p>Plan: Pro</p>
</div>
</div>
);
}2
Conecta el flujo de datos
Asigna cada dato del componente App al hijo que lo necesita.
App tiene 4 datos/funciones. Conecta cada uno al componente hijo que lo necesita como prop.
App (padre)
├──├──└──
HeaderProductListCartBadge
userName→
items[]→
onLogout()→
cartCount→
3
Debug en vivo
El componente tiene un bug. Encuéntralo y arréglalo.
- Comprar pan
⚠ Bug: al pulsar "Añadir" no se añade nada a la lista
⚠ Console warning:
Do not mutate state directly. Use setState().
at TodoList (TodoList.tsx:6)
1
function TodoList() {2
const [todos, setTodos] = useState(["Comprar pan"]);
3
const [input, setInput] = useState("");4
5
const addTodo = () => {6
todos.push(input); // ← línea 6
7
setInput(""); // ← línea 78
};
9
10
return (
11
<div>
12
<input value={input} onChange={e => setInput(e.target.value)} />13
<button onClick={addTodo}>Añadir</button>14
<ul>
15
{todos.map((t, i) => <li key={i}>{t}</li>)}16
</ul>
17
</div>
18
);
19
}
Recursos
Documentación y material de apoyo para este reto
Estado del reto