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

210
Vistas
Reaccionar: ¿por qué el estado de geolocalización no está definido cuando se accede desde otra función?

Estoy tratando de obtener la latitud y la longitud de geoLocation y usarlo para obtener datos de una API meteorológica. Sin embargo, el problema es que tan pronto como paso el estado de latitud o longitud a mi función fetchWeather e intento acceder a ella, solo funciona una vez. Si vuelvo a cargar la página, el estado de latitud y longitud se muestra como indefinido, que es el estado inicial. Es como si el estado no se volviera a establecer después de actualizar la página. Fuera de la función, el estado funciona bien incluso después de recargar la página.

 function WeatherToday() { const [weather, setWeather] = useState([]); const [Loading, setLoading] = useState(false); const [latitude, setLatitude] = useState(); const [longitude, setLongitude] = useState(); const fethGeoLocation = async () => { try { navigator.geolocation.getCurrentPosition(function (position) { setLatitude(position.coords.latitude); setLongitude(position.coords.longitude); }); } catch (error) { console.warn(error); } }; console.log(latitude, longitude); // Works on every call const fetchWeatherData = async () => { try { setLoading(true); console.log('geolocation', latitude, longitude); // does not work, latitude and longitude is undefined const res = await fetchWeather(latitude, longitude); setWeather(res.data); setLoading(false); } catch (error) { setLoading(false); console.warn(error); } }; useEffect(() => { fethGeoLocation(); fetchWeatherData(); }, []); if ( !Loading && weather && ) { return ( <div className={WeatherTodayStyles.container}> <Forecast forecast={weather} /> <HourlyForecast forecast={weather} /> </div> ); } else { return <div>Loading...</div>; } } export default WeatherToday;
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