Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

92
Vistas
Cómo pasar el estado más reciente de los padres a los componentes secundarios que son elementos del estado en React

Aquí, quise decir que padre e hijo fueran App() y Child() respectivamente en el código a continuación.

App() tiene un estado, myState , que es una matriz de Child() .
Cada Child() es básicamente un <button> con una determinada propiedad que contiene myState e imprime la id de cada Child() en myState en la consola cuando se presiona.

Lo que espero es que cuando se presiona Child() , se imprima el último myState .
Sin embargo, el myState realmente impreso parece la versión de cuando se aprobó, y no la última.

¿Hay alguna solución para hacer que la propiedad myState pase a Child() apunte al myState más reciente?

Habiendo agregado varios niños, puede verificar el myState de cada Child() en la consola presionándolos.
Por ejemplo, si presiona el botón ADD dos veces, aparecerán 2 botones adicionales.
Cuando se presiona Child() inicialmente agregado ( id of 'initial' ), imprime correctamente los id s, 1 y 2.
Sin embargo, cuando se presiona ID: 1 , no se imprime nada, y cuando se presiona ID: 2 , solo 1.

 import React, { useState } from 'react'; import './App.css'; function App() { const [myState, setMyState] = useState([] as JSX.Element[]); /* Below is a BAD state-passing example. setMyState makes myState point to an new array with another Child appended, although myState passed to the new Child references to the old array. Is there any way to pass the latest myState to Child??? */ function add() { setMyState([...myState, <Child key={myState.length + 1} id={myState.length + 1} myState={myState} />]); } return ( <div className="App"> <button onClick={add}>ADD</button> <Child key="initial" id="initial" myState={myState} /> {myState} </div> ); } function Child({ id, myState }: any): JSX.Element { return ( <div> <button id={id} onClick={() => { for (let child of myState as JSX.Element[]) { console.log(child.props.id); } }}>ID: {id}</button> </div> ); } export default App;
about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda