javascript - vue路由导航导致栈溢出了,但是不知道哪里死循环了,求高手帮忙看下代码。
本文介绍了javascript - vue路由导航导致栈溢出了,但是不知道哪里死循环了,求高手帮忙看下代码。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
router.beforeEach((to, from, next) => {
nProgress.start()
console.log(store.getters.token)
if (store.getters.token) {
console.log(store.state.token)
if (!store.getters.role) {
console.log(store.getters.role)
reqData.req({
apiName: 'getUser'
}).then(res => {
res = res.data
if (res) {
if (res.code === '200') {
console.log(res)
let data = res.data
let routes = addRoutes[data.role]
store.commit('SET_NAME', data.name)
store.commit('SET_ROLE', data.role)
store.commit('SET_AVATAR', data.avatar)
router.addRoutes(routes)
next(to.path)
} else {
this.$message({
showClose: true,
message: res.message,
type: 'warning'
})
}
}
}).catch(err => {
console.log(err)
})
} else {
next()
}
} else {
next('/login')
nProgress.done()
}
})
报错信息:
现在问题是第一次进来就死循环了,开始我的token是null,应该直接进入登录页面,但是死循环了,求高手帮忙看下,非常感谢!
解决方案
next('/login')
就会一直执行啊,比如你去到/
发现没有token,然后调到/login
,然后又进入你的beforeEach
发现还是没有token,继续去login。就会一直在login跳。。。
这篇关于javascript - vue路由导航导致栈溢出了,但是不知道哪里死循环了,求高手帮忙看下代码。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文