useEffect(() => {
return history.replace({
pathname: "path/A",
});
}, []);
useEffect(() => {
return history.replace({
pathname: "path/B",
});
}, []);
当组件卸载时,URL 是什么?是什么决定了上面2个useEffect
的执行顺序?
最佳答案
由于您没有通过 deps
的性质;这两个 useEffect
只会在组件挂载时呈现。因此,结果是(而且永远是)"path/B"
。
如果您希望它在组件卸载时发生变化,您需要向其中一个添加一个return
函数。
useEffect(() => {
history.replace({ pathname: "path/B" });
return () => history.replace({ pathname: "path/B" });
}, []);
关于javascript - useEffect 清理中的执行顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70140350/