RangeError:超出最大调用堆栈大小| Vue.js

时间:2019-09-19 22:24:47

标签: vue.js vue-router

我一直在解决这个错误,谷歌说这是一个循环,但是我还没有在我的代码中找到一个循环。我确实知道路由器正在尝试重新加载并与错误消息相关,因为在我的Chrome控制台中,我得到Token: null约100次

我已经包含了我认为是相关的文件,并删除了不需要的东西。在我的store.js文件中,您将看到我将console.log令牌传递给authUser突变时,该令牌在我的控制台中正确输出,因此没有丢失令牌的问题。

main.js

router.beforeEach((to, from, next) => {
  if(to.fullPath == '/login' || to.fullPath == '/signup') return next()
  console.log('Token: ',store.state.token)
  if(store.state.token) {
    return next()
  } else {
    return next('/signin')
  }
})

new Vue({
  render: h => h(App),
  store,
  router
}).$mount('#app')

store.js

state: {
    token: null,
    name: '',
    companyName: ''
  },
mutations: {
    authUser(state, userData) {
      console.log(userData.token)
      state.token = userData.token
    }
  },
actions: {
    tryAutoLogin({commit}) {
      const token = localStorage.getItem('token')
      if(!token) {return}
      commit('authUser',{
        token
      })
    },
}

App.vue

created() {
    this.$store.dispatch('tryAutoLogin')
    }

0 个答案:

没有答案