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 向大佬致敬~

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容