[英]React hooks, set return value of a function to state causes infinite loop
[英]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.