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

106
Visualizações
Filtro interior UseEffect React no funciona

Estoy usando el método .filter() en un objeto dentro de un método useEffect() para filtrar ciertas matrices por nombre si existen en un segundo objeto. Necesito recuperar la diferencia de matrices en un método useState() . Estoy usando lo siguiente y funciona fuera del método useEffect() :

 useEffect(() => { getDBData().then( (r) => { setAnotherObj(r); }); getAPICall().then((r) => { let result = r.filter( (o1) => !anotherObj.filter((o2) => o1.name === o2.name) ); setOption(result); }); }, []);

Ahora que funciona fuera del método useEffect cuando lo agrego a un evento como onClick, pero no dentro, podría funcionar una vez y luego no funciona en absoluto. ¿Qué me falta sobre el método useEffect que necesito saber por qué no se realiza el filtrado?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Reemplace el segundo filter con find . !anotherObj.filter(o2 => o1.name === o2.name) siempre devolverá false , ya sea que tenga elementos o no.

No hay una matriz de dependencia en useEffect , por lo que cada vez que hay un cambio de estado, este useEffect se activa nuevamente.

Encontrando AB, filtra todos los elementos de A que no están en B. r.filter(o1 => anotherObj.find(o2 => o1.name !== o2.name)); Con esto elimina todos los elementos que son comunes en A y B. Y deja afuera solo elementos en A.

Actualizar de la siguiente manera,

 useEffect( () => { getAPICall().then( (r) => { const result = r.filter(o1 => anotherObj.find(o2 => o1.name !== o2.name)); setOption(result); }); }, []);
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