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

90
Views
React Native - UseEffect se actualiza constantemente

Estoy usando useEffect para obtener el total de piezas del rompecabezas de mi almacenamiento asíncrono para que se muestren en la página de inicio. Utilizo el almacenamiento asíncrono para obtener la cantidad de rompecabezas almacenados en el almacenamiento y luego, para cada rompecabezas, agrego la cantidad total de piezas del rompecabezas. Hago esto dentro de useEffect ya que la cantidad total de piezas de rompecabezas puede cambiar dependiendo de si el usuario agrega más rompecabezas a su colección. Sin embargo, cuando uso useEffect, mi cantidad total de piezas de rompecabezas se actualiza constantemente y nunca se detiene.

Código:

 let [totalPieces, setTotalPieces] = useState(0); const [numJigsaw, setNumJigsaw] = useState([]); const getNumOfJigsaw = async () => { try { setNumJigsaw(await AsyncStorage.getAllKeys()); } catch (e) {} return numJigsaw; }; const getAllJigsaw = async () => { let jigsaws = await getNumOfJigsaw(); for (let z = 0; z < jigsaws.length; z++) { let currentJigsaw = JSON.parse(await AsyncStorage.getItem(jigsaws[z])); setTotalPieces(totalPieces+ parseFloat(currentJigsaw.pieces)); } }; useEffect(() => { getAllJigsaw(); }, [totalPieces]);

Creo que el problema se debe a que totalPieces depende. Aunque no estoy del todo seguro.

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

0

Sí, configuró el efecto para que se ejecute cuando cambie totalPieces (a través de la dependencia).

El efecto (cuando se resuelven las cosas asincrónicas) establece totalPieces , por lo que el efecto se ejecuta nuevamente debido a esa dependencia, etc., etc.

Parece que estás buscando algo como

 const [totalPieces, setTotalPieces] = useState(0); const [jigsawKeys, setJigsawKeys] = useState([]); useEffect(() => { (async () => { const jigsaws = await AsyncStorage.getAllKeys(); let total = 0; for (let z = 0; z < jigsaws.length; z++) { let currentJigsaw = JSON.parse(await AsyncStorage.getItem(jigsaws[z])); total += parseFloat(currentJigsaw.pieces); } setJigsawKeys(jigsaws); setTotalPieces(total); })(); }, [totalPieces]);

en general (cambié el nombre de numJigsaw a jigsawKeys para que tenga más sentido).

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!