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

148
Vistas
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 Respuestas
Responde la pregunta

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 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