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

186
Vistas
reaccionar useEffect nativo se ejecuta en bucle muerto:
export default function CreatePage() { let [state,setState]=useState({}) let flag=true useEffect(()=>{ if(flag){ axios.get('http://192.168.43.151:3001/data').then((res)=> { console.log(res.data) setState({...res.data}) flag=false console.log(false) } ).catch((err)=>{console.log(err)}).finally(()=>{flag=false}) } }) return ( <View > <Text>hh</Text> <Icon name="heart" size={24} color="#4F8EF7" /> <Text>first page</Text> <Text>{state.name}</Text> </View> )

}

después de ejecutar el código, la terminal continúa mostrando:

 {"age": 25, "name": "connor", "password": "123456"} LOG false LOG {"age": 25, "name": "connor", "password": "123456"} LOG false LOG {"age": 25, "name": "connor", "password": "123456"} LOG false

Tengo confusión acerca de esto, la función useEffect debe representarse una vez. Sin embargo, parece que se continúa reescribiendo.

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

0

para ejecutar useEffect solo una vez, debe agregar una matriz de dependencia sin dependencia. Algo como esto:

 useEffect(() => { // this code will execute only once after first render. // some code... }, [])
about 4 years ago · Juan Pablo Isaza Denunciar

0

No agregó una matriz de dependencia a la función useEffect. Por lo tanto, está destinado a ser una reproducción infinita.

Y reaccionar no recomienda let . Utilice el valor de estado.

Puede agregar una matriz de dependencia

 const [state,setState] = useState({}); const [flag,setFlag] = useState(true); useEffect(()=>{ if(flag){ axios.get('http://192.168.43.151:3001/data').then((res)=> { console.log(res.data) setState({...res.data}) setFlag(false) console.log(false) } ).catch((err)=>{console.log(err)}).finally(()=>{flag=false}) } },[]) if(flag) { return <LoadingElem /> } ...
about 4 years ago · Juan Pablo Isaza Denunciar

0

Si desea ejecutar un efecto y limpiarlo solo una vez (al montar y desmontar), puede pasar una matriz vacía ([]) como segundo argumento para useEffect .

 useEffect(() => {}, [])
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