Redirected when going from "x" to "y" via a navigation guard

发布于 2022-09-12 03:31:52 字数 465 浏览 19 评论 0

需求:
进入Mine页面前, 判断用户是否登录,若登录,则直接进入该页面,否则进入Login进行登录,登录成功后跳转到Mine页面。

Mine里面的代码:
I~8N[2JEVIQKPQC$QH[EK[1.png

Login里面的部分代码:
N7R~NY8GZSTWWYG0NOAF3HP.png

当我在Login组件登录成功时,报错:Error: Redirected when going from "/login?redirect=%2Fmine" to "/mine" via a navigation guard.

找了很久也没找到问题在在哪,求指导!十分感谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

∞觅青森が 2022-09-19 03:31:52

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('登录失败!')
})
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文