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

133
Vistas
La devolución de llamada no resuelve useState asíncrono

Chicos, estoy trabajando en la aplicación meteorológica y lucho con useState asíncrono. He leído en stackoverflow que se puede resolver con devolución de llamada en la función useState. Así que lo probé pero nada cambió. El problema es que cuando hago clic en el botón Enviar, el estado debe recibir datos de la API, pero no lo hace y obtengo un valor nulo en mi estado. ¿Qué está mal? Si puede, por favor ayúdeme de acuerdo con mi código. PD perdió algunas funciones que no son importantes

 const useForecast = () => { const [forecast, setForecast] = useState(null); const gatherForecastData = async data => { const currentDay = await getCurrentDayForecast(data.consolidated_weather[0], data.title); const currentDayDetails = await getCurrentDayDetailedForecast(data.consolidated_weather[0]); await setForecast(() => { return { currentDay, currentDayDetails}; }); setLoading(false); }; // MAIN FUNC AND TROUBLE IS HERE const submitRequest = async location => { setLoading(true); setError(false); const response = await getWoeid(location); if (!response?.woeid) return; const data = await getForecastData(response.woeid); if (!data) return; await gatherForecastData(data); console.log(data); // DATA SHOWS OK console.log(forecast); // SHOWS INITIAL STATE FOR THE FIRST SUBMIT }; }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

useState es síncrono, también, debe pasar los valores que desee, en este caso el objeto

{ día actual, detalles del día actual}

, por lo que estas líneas

 await setForecast(() => { return { currentDay, currentDayDetails}; });

debiera ser

 setForecast({ currentDay, currentDayDetails});
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