这个问题出现在我设置vue的守卫导航的时候
执行onConnect 函数的时候,会发现 this.router.push()函数较先执行,也就是说我要存进store 里面的内容还没存进去,导致先出发了守卫导航,后存储了信息进去。
我的解决办法,确保vuex 的存储已经结束再进行页面跳转。
如图:
login.vue
router/index.js
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 向大佬致敬~