尝试下面的代码时,我经常遇到最大堆栈大小超出问题的情况,它在每个路由上使用vue路由器导航防护:
import state from "../vuex-store/state.js";
import Editor from "../views/Editor";
const routes = [
{
path: "/editor",
component: Editor,
beforeEnter: (to, from, next) => {
if (state.isAuthorized) {
if (from.path === "/editor") {
next(false);
} else {
next("/editor");
}
} else {
next(false);
}
}
}
];
请帮我解释一下为什么发生此递归错误,我该如何解决?非常感谢!
答案 0 :(得分:1)
error
通过以下表达式出现:next("/editor");
如果您的语句为true
,则将创建一个无限循环,因为它再次触发了beforeEnter
-Method。
要解决此问题,只需替换
next("/editor");
与
next();
它应该可以工作。