Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

134
Views
Bucle infinito con un useEffect en React native

Tengo un problema, en las dos funciones a continuación, cuando verifico la depuración de mi solicitud, hay un ciclo infinito de mi solicitud GET y no entiendo por qué mi useEffect se vuelve a activar cada vez.

Aquí está mi código:

 const gardenData = async () => { setLoading(true); const user = await AsyncStorage.getItem('user'); const parsedUserData = JSON.parse(user); try { const response = await axios.get( `http://127.0.0.1/api/garden?user=${parsedUserData.user.id}`, { headers: { Authorization: `Token ${parsedUserData.token}`, }, }, ); if (response.status === 200) { setGarden(response.data); setLoading(false); } } catch (e) { console.log('Erreur ' + e); setLoading(false); } }; const getPlotData = async () => { const user = await AsyncStorage.getItem('user'); const parsedUserData = JSON.parse(user); const id = garden.map(g => g.id); alert(id); try { const response = await axios.get( `http://127.0.0.1/api/plots?garden=${id}`, { headers: { Authorization: `Token ${parsedUserData.token}`, }, }, ); if (response.status === 200) { setPlot(response.data); } } catch (e) { alert(e); } }; useEffect(() => { gardenData(); getPlotData(); }, [setGarden, setPlot]);

Gracias por la ayuda brindada

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

La matriz que pasa al segundo parámetro para useEffect debe contener las variables de estado para observar que, cuando se cambia, hará que useEffect se ejecute nuevamente, porque lo está pasando [setGarden, setPlot], cuando usa estos métodos para setPlot(response .data) luego useEffect se ejecuta de nuevo, provocando un bucle infinito

Si desea que esto se ejecute solo una vez, pase useEffect una matriz vacía como esta:

 useEffect(() => { gardenData(); getPlotData(); }, []);
about 4 years ago · Juan Pablo Isaza Report

0

Si setGarden y setPlot son el estado, creo que está observando dos vars que cambian en las funciones que llama. Simplemente coloque una matriz vacía en el observador de useEffect

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!