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开发工具上保留日志,然后启动你的应用程序。这样你就能明白为什么它会产生一个无限循环。
;如果";情况不对。
if (new_path !== window.location.pathname + window.location.search) {}
这将始终为真,并且history.replace
将再次运行。
所以解决方案是
if (new_path[<your key>] !== window.location[<your key>]) {}
如果你想成为new_path
是一个字符串,你需要检查什么是new_path
值
如果new_path
是应用程序中的一个状态,它应该在{}
中
pathname: {new_path}