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

189
Vistas
Al pasar datos de hijo a padre después de que se haya actualizado Array State, ¿por qué obtengo una instancia del estado anterior?

Esta función se agrega a un clic de botón.

 const listChangeHandler = (e) => { e.preventDefault(); setIngredientList((prevArray) => [...prevArray, ingredient]); inputIngredient.current.value = ""; props.data(ingredientList); };

El problema es: el estado recibido (ingredientList) que obtengo en la composición principal es el anterior, no el último que se muestra en el componente secundario

¿Por qué y cuál podría ser la solución?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Es por este hecho que el state siempre se actualiza después de volver a renderizar, por lo que cuando lo pasa al componente superior, ¡todavía tiene su valor anterior! Para solucionar este problema tienes dos soluciones:

  1. actualice su código de la siguiente manera:
 const listChangeHandler = (e) => { e.preventDefault(); let temp = [...ingredientList, ingredient]; setIngredientList(temp); inputIngredient.current.value = ""; props.data(temp); };
  1. use useRef en lugar de useState porque, a diferencia de state , ref se actualiza inmediatamente.
about 4 years ago · Juan Pablo Isaza Denunciar
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