javascript - useEffect 清理中的执行顺序

标签 javascript reactjs

  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/

相关文章:

javascript - 如何在 JavaScript 中删除嵌套对象树中的特定节点

reactjs - 如何在 React 中以正确的方式将状态从子级传递给父级

javascript - React 提交事件 - 输入键不起作用

javascript - ReactJS本地主机Ajax调用: No 'Access-Control-Allow-Origin' header

javascript - Redux action 支持意外行为

javascript - 使用 CSS 悬停伪选择器时,组件无法在 React 中正确渲染

javascript - 尝试在 contentScript 中调用函数时出现“函数未定义”

javascript - 存储 jquery 选择器数组?

node.js - 管理员能够将社交媒体链接到用户帐户

javascript - 如何在 JSP 中将特殊字符传递给 JavaScript ..?