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

104
Views
useEffect con muchas dependencias

Estoy tratando de buscar empleados y esto es lo que estoy tratando de hacer usando useEffect

 function AdminEmployees() { const navigate = useNavigate(); const dispatch = useDispatch(); // fetching employees const { adminEmployees, loading } = useSelector( (state) => state.adminFetchEmployeeReducer ); useEffect(() => { dispatch(adminFetchEmployeeAction()); if (adminEmployees === "unAuthorized") { navigate("/auth/true/false"); } }, [adminEmployees, navigate,dispatch]); console.log("Here i am running infinie loop"); console.log(adminEmployees); return ( <> {loading ? ( <Loader></Loader> ) : adminEmployees === "no employees" ? ( <h1>No Employees</h1> ) : ( <> {adminEmployees && adminEmployees.map((employee) => { return ( <div className="admin__employee__container" key={employee.id}> <AdminSingleEmployee employee={employee} ></AdminSingleEmployee> </div> ); })} </> )} </> ); }

Aquí quiero lograr 2 objetivos:

  1. buscar adminEmpleados
  2. si (adminEmployees==='unAuthorized') entonces vaya a la página de inicio de sesión

pero al hacer esto como en el código, crea un bucle infinito.
¿Cómo puedo lograr la funcionalidad deseada?

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

0

Fácil camino sucio: dividir useEffect en 2

 useEffect(() => { if (adminEmployees === "unAuthorized") { navigate("/auth/true/false"); } }, [adminEmployees, navigate]); useEffect(() => { dispatch(adminFetchEmployeeAction()); }, [dispatch]);

Mejor manera: maneje ese caso en el reductor o creador de acciones para voltear la bandera en la tienda y luego consumirlo en el componente:

 const { shouldNavigate } = useSelector(state => state.someSlice); useEffect(() => { if(shouldNavigate) { // flipping flag back dispatch(onAlreadyNavigated())); navigate("/yourPath..."); }, [navigate, dispatch, shouldNavigate] );
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!