繁体   English   中英

在 React 中,用相同的值替换 URL 会导致无限循环

[英]In React, replacing URL with an identical value causes infinite loop

      if (new_path !== window.location.pathname + window.location.search) {
        history.replace({
          pathname: new_path,
          search: "",
        });
      }

编辑:

new_path只是一个字符串。 如果没有if语句,上面的代码会造成死循环。

这是预期的行为吗?

它只会导致无限循环,如果

new_path不同于window.location.pathname + window.location.search

如果您想检查其值,请尝试在 chrome 开发人员工具上保留日志,然后启动您的应用程序。 这样你就可以明白为什么它会产生一个无限循环。

如果new_path在您的应用中是 state,它应该在{}

pathname: {new_path}

“如果”条件是错误的。

if (new_path !== window.location.pathname + window.location.search) {}

这将始终为真, history.replace将再次运行。

所以解决方案是

if (new_path[<your key>] !== window.location[<your key>]) {}

如果你的意思是new_path是一个字符串,你需要检查new_path值是什么

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM