vue路由跳转错误:Error: Redirected when going from “/l“ to “/home“ via a navigation guard.

这个问题出现在我设置vue的守卫导航的时候

执行onConnect 函数的时候,会发现 this.router.push()函数较先执行,也就是说我要存进store 里面的内容还没存进去,导致先出发了守卫导航,后存储了信息进去。

我的解决办法,确保vuex 的存储已经结束再进行页面跳转。

如图:

login.vue

login.vue

router/index.js


router/index.js 配置

store actions


store actions

控制台打印结果


但是,网上还搜到了两种办法,列表出来,供大家参考

解决方案二:对vue-router降低版本到3.0.7,手动修改就行了

修改完之后记得删除原来的node_modules文件,再使用npm i 或yarn install生成新node_modules文件

解决方案三:

直接复制下面代码到router文件下index.js,也是可以解决的

const originalPush = VueRouter.prototype.push

VueRouter.prototype.push = function push(location, onResolve, onReject) {

if (onResolve || onReject) return originalPush.call(this, location, onResolve, onReject)

return originalPush.call(this, location).catch(err => err)

}

原文链接:https://blog.csdn.net/weixin_44039043/article/details/109400572 向大佬致敬~

你可能感兴趣的:(vue路由跳转错误:Error: Redirected when going from “/l“ to “/home“ via a navigation guard.)