padre al hijo

 ¡Perfecto! Te lo explico de forma muy simple, como una llamada telefónica:

📞 Analogía Sencilla

  1. Padre → Le da al hijo un teléfono (función)

  2. Hijo → Llama por ese teléfono y le dice algo (datos)

  3. Padre → Escucha lo que el hijo le dijo

🎯 Ejemplo Super Simple

Paso 1: El Padre prepara el "teléfono"

javascript
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"

javascript
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:

javascript
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:

javascript
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

javascript
// 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

javascript
// 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:

  1. Padre crea una función como function recibir(datos) { ... }

  2. Padre la pasa como prop al hijo: <Hijo enviar={recibir} />

  3. Hijo recibe la función como prop: function Hijo({ enviar }) { ... }

  4. Hijo la llama con datosenviar("mis datos")

  5. 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

Entradas más populares de este blog

1-Sistema de Tareas en React

0-Gestión de estado en una aplicación de tareas

2-Agregar una Tarea a tu Lista de Tareas en React