javascript - vue路由导航导致栈溢出了,但是不知道哪里死循环了,求高手帮忙看下代码。

查看:705
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆