padre al hijo
¡Perfecto! Te lo explico de forma muy simple, como una llamada telefónica:
📞 Analogía Sencilla
Padre → Le da al hijo un teléfono (función)
Hijo → Llama por ese teléfono y le dice algo (datos)
Padre → Escucha lo que el hijo le dijo
🎯 Ejemplo Super Simple
Paso 1: El Padre prepara el "teléfono"
function Padre() {
// Esta función es el "teléfono"
const recibirMensaje = (mensaje) => {
alert("Mi hijo me dijo: " + mensaje);
};
return (
<div>
<h1>Yo soy el Papá</h1>
{/* Le paso el teléfono a mi hijo */}
<Hijo miTelefono={recibirMensaje} />
</div>
);
}Paso 2: El Hijo usa el "teléfono"
function Hijo({ miTelefono }) {
return (
<div>
<h2>Yo soy el Hijo</h2>
<button onClick={() => miTelefono("¡Hola Papá!")}>
Llamar a Papá
</button>
</div>
);
}📝 Ejemplo Práctico con Formulario
Padre Component:
function Padre() {
// 1. Papá prepara su bolsillo para guardar cosas
const [cosasDelHijo, setCosasDelHijo] = useState([]);
// 2. Papá prepara su "mano extendida" para recibir
const recibirRegalo = (regalo) => {
console.log("Recibí:", regalo);
setCosasDelHijo([...cosasDelHijo, regalo]);
};
return (
<div>
<h1>Cosas que me dio mi hijo:</h1>
<ul>
{cosasDelHijo.map((cosa, index) => (
<li key={index}>{cosa}</li>
))}
</ul>
{/* 3. Papá le da su "mano extendida" al hijo */}
<Hijo manoParaRecibir={recibirRegalo} />
</div>
);
}Hijo Component:
function Hijo({ manoParaRecibir }) {
const [miRegalo, setMiRegalo] = useState("");
const darRegalo = () => {
// 4. Hijo pone algo en la mano del papá
manoParaRecibir(miRegalo);
setMiRegalo(""); // Vacío la caja
};
return (
<div>
<h2>Yo elijo un regalo para papá:</h2>
<input
value={miRegalo}
onChange={(e) => setMiRegalo(e.target.value)}
placeholder="Escribe un regalo"
/>
{/* 5. Hijo entrega el regalo */}
<button onClick={darRegalo}>
Dar regalo a Papá
</button>
</div>
);
}🎮 Ejemplo Interactivo - Videojuego
// PADRE - Tiene el marcador
function Juego() {
const [puntos, setPuntos] = useState(0);
// Función para sumar puntos
const sumarPuntos = (cantidad) => {
setPuntos(puntos + cantidad);
console.log("¡Gané " + cantidad + " puntos!");
};
return (
<div>
<h1>PUNTOS TOTALES: {puntos}</h1>
{/* Le paso la función al jugador */}
<Jugador cuandoAnota={sumarPuntos} />
</div>
);
}
// HIJO - Es el jugador
function Jugador({ cuandoAnota }) {
const anotar = () => {
// Cada vez que anoto, le aviso al padre
cuandoAnota(10); // Le digo: "sumá 10 puntos"
};
return (
<div>
<h2>Jugador</h2>
<button onClick={anotar}>
¡ANOTAR CANASTA! 🏀
</button>
</div>
);
}🍕 Ejemplo de la Vida Real: Pedir Pizza
// PADRE - Quien paga
function Papa() {
const [pedido, setPedido] = useState("");
// Función para recibir el pedido
const recibirPedido = (pizza) => {
setPedido(pizza);
console.log("Voy a pedir: " + pizza);
};
return (
<div>
<h1>Papá - Voy a pedir: {pedido}</h1>
{/* Le pregunto al hijo qué quiere */}
<Hijo decirmeQueQuiere={recibirPedido} />
</div>
);
}
// HIJO - Quien elige
function Hijo({ decirmeQueQuiere }) {
const elegirPizza = (sabor) => {
// Le digo a papá lo que quiero
decirmeQueQuiere("Pizza de " + sabor);
};
return (
<div>
<h2>Hijo - ¿Qué quiero comer?</h2>
<button onClick={() => elegirPizza("Muzzarella")}>
Muzzarella 🍕
</button>
<button onClick={() => elegirPizza("Jamón")}>
Jamón 🍖
</button>
</div>
);
}✨ En Resumen:
Padre crea una función como
function recibir(datos) { ... }Padre la pasa como prop al hijo:
<Hijo enviar={recibir} />Hijo recibe la función como prop:
function Hijo({ enviar }) { ... }Hijo la llama con datos:
enviar("mis datos")Padre recibe los datos y hace lo que quiera con ellos
¡Es como darle a tu hijo un walkie-talkie para que te hable! 🎤
El hijo no modifica directamente las cosas del padre, sólo le habla a través de la función que el padre le prestó
Comentarios
Publicar un comentario