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

336
Vistas
Cómo hacer que axios funcione con expo (reaccionar nativo)

Estoy tratando de llamar al clima local desde openweathermap en mi aplicación nativa de reacción. He probado la URL tanto en el navegador como en el código en un proyecto de reacción simple y funciona. Sin embargo, en reaccionar nativo no lo hace.

Aquí está mi código:

 function Overview() { const appState = useRef(AppState.currentState); const [count, setCount] = useState(0); const [active, setActive] = useState(false); const [latitude, setLatitude] = useState(0); const [longitude, setLongitude] = useState(0); const [temperature, setTemperature] = useState(''); const API_KEY = '{...apikey...}'; const getLocationAsync = async () => { let {status} = await Location.requestForegroundPermissionsAsync(); if (status !== 'granted') { console.log('Location Permission Error') } const loc = await Location.getCurrentPositionAsync({}); setLatitude(loc.coords.latitude); setLongitude(loc.coords.longitude); } const getTemperature = useCallback(async () => { const url = `https://api.openweathermap.org/data/2.5/weather?lat=${latitude.toFixed(2)}&lon=${longitude.toFixed(2)}&appid=${API_KEY}`; console.log("my provided url is set to:", url); const response = await axios.get(url); if (response.data) { setTemperature(response.data.main.temp); } }, [latitude, longitude]) useEffect(() => { appState.current.match('active') ? setActive(true) : setActive(false) active && setInterval(() => setCount((oldCount) => oldCount + 1), 60000); getLocationAsync(); return () => { clearInterval(); }; }, [active]); useEffect(() => { getTemperature() .catch(console.error); }, [getTemperature]) return ( <View style={{margin: 32}}> <View style={{marginBottom: 32}}> <Text style={{fontSize: 36, fontFamily: 'Roboto_400Regular'}}>Great!</Text> <Text style={{fontSize: 16, color: '#878787', fontFamily: 'Roboto_400Regular'}}>Average mood 23%</Text> </View> <View style={{flexDirection: 'row', justifyContent: 'space-between'}}> <OverviewContainer title="Weather" value={temperature ? temperature : "no data"}/> <OverviewContainer title="Time on app" value={secondsToHms(count)}/> </View> </View> ); }

Originalmente pensé que podría ser un problema con mi código, pero lo corregí para asegurarme de que funcionaba. He leído en otras preguntas que en expo necesitas agregar tu ip y puerto a la url. Sin embargo, al probar esto, todavía no pude hacerlo funcionar. ¡Cualquier ayuda sería genial!

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