1.终于发现问题所在,问题主要出现在Login组件中。
2.this.$store.dispatch('getUserInfo', { phone, code })
为异步操作,并不会立刻执行,代码会先执行下一步this.$router.push(this.$route.query.redirect)
,当从Login跳转到Mine页面时,userInfo还没有请求到,因此当进入Min时会判定用户没有登录,又再次跳转到Login页面,重复的重定向引起vue-router报错。
3.解决办法也很简单
this.$store.dispatch('getUserInfo', { phone, code }).then(() => {
this.$router.push(this.$route.query.redirect)
}).catch(() => {
alert('登录失败!')
})
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…