useEffect(() => { return history.replace({ pathname: "path/A", }); }, []); useEffect(() => { return history.replace({ pathname: "path/B", }); }, []); Cuando el componente se desmonte, ¿cuál será la URL? ¿Qué determina el orden de ejecución de los 2 useEffect anteriores?
Debido a la naturaleza de ustedes, no pasan deps ; ambos useEffect s solo se representarán en el montaje del componente. Por lo tanto, el resultado es (y siempre será) "path/B" .
Si quisiera que cambiara al desmontar el componente, necesitaría agregar una función de return a uno de ellos.
useEffect(() => { history.replace({ pathname: "path/B" }); return () => history.replace({ pathname: "path/B" }); }, []);