Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

86
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda