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

147
Visualizações
es un buen enfoque que define 2 useEffect Hooks, vea mi uso del caso a continuación

Traté de encontrar el mismo caso, pero todos están en una situación diferente.

Creé 2 useEffects en mi componente, uno para inicializar el componente (1 ejecución) y otro para obtener datos cuando cambia algún estado (filtro). (muchas ejecuciones)

 const [filter1, setFilter1] = useState({}); const [filter2, setFilter2] = useState({}); //initialize filters, only once useEffect(() => { //here i fetch all the data to fill the filter components. setFilter1(data1); setFilter2(data2); }, []); //everytime my filters change. useEffect(() => { //here i fetch data using the filter as parameters. }, [filter1,filter2]);

El código anterior es mi último enfoque y funciona bien. Cada vez que cambio los filtros, useEffect obtiene los datos y carga la tabla con esos datos.

Muestro a continuación el antiguo enfoque que tomé y el que no me gustó.

 const loadData = useCallback((filter1,filter2) => { //here i fetch data using the filter as parameters. }, [filter1,filter2]); useEffect(() => { //here i fetch all the data to fill the filter components. setFilter1(data1); setFilter2(data2); loadData(filter1, filter2); },[]);

y usé la función loadData en cada controlador de cambio de filtro como:

 const onFilter1Change = (val) => { setFilter1(val); loadData(val, filter2) };

El antiguo enfoque anterior me trajo algunos problemas con respecto a cómo usar los ganchos correctamente y es por eso que me encuentro preguntándoles a los expertos de React cómo mejorar mi codificación de la mejor manera.

El nuevo enfoque funciona bien para mí, aunque me pregunto si es correcto usar 2 useEffect en este caso, o si hay una mejor manera de hacerlo.

Salud

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

0

¿De dónde proviene data1 y data2 ? Si es un accesorio, y está usando un useEffect solo para inicializarlos, no necesita un useEffect para eso:

 const [filter1, setFilter1] = useState(data1); const [filter2, setFilter2] = useState(data2); useEffect(() => { //here i fetch data using the filter as parameters. }, [filter1, filter2]);
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