RangeError: Превышен максимальный размер стека вызовов |Vue.js - PullRequest
0 голосов
/ 20 сентября 2019

Я немного боролся с этой ошибкой, Google говорит, что это цикл, но мне еще не удалось найти цикл в моем коде.Я знаю, что маршрутизатор пытается перезагрузиться и связан с сообщением об ошибке, потому что в моей консоли 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')
    }
...