Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RangeError:超过最大调用堆栈大小| Vue.js_Vue.js_Vue Router - Fatal编程技术网

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

RangeError:超过最大调用堆栈大小| Vue.js,vue.js,vue-router,Vue.js,Vue Router,我已经和这个错误斗争了一段时间,谷歌说这是一个循环,但我还没有在我的代码中找到一个循环。我确实知道路由器正在尝试重新加载并与错误消息相关,因为在我的Chrome控制台中,我得到令牌:null大约100次 我已经包括了我认为是相关的文件,去掉了不需要的东西。在my store.js文件中,您将看到I console.log令牌,因为它被传递到authUsermutation,该令牌在我的控制台中正确输出,因此没有丢失令牌的问题 main.js router.beforeEach((to, from

我已经和这个错误斗争了一段时间,谷歌说这是一个循环,但我还没有在我的代码中找到一个循环。我确实知道路由器正在尝试重新加载并与错误消息相关,因为在我的Chrome控制台中,我得到
令牌:null
大约100次

我已经包括了我认为是相关的文件,去掉了不需要的东西。在my store.js文件中,您将看到I console.log令牌,因为它被传递到
authUser
mutation,该令牌在我的控制台中正确输出,因此没有丢失令牌的问题

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')
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
      })
    },
}
store.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')
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')
    }

在你粘贴的代码中看起来不像它。在你粘贴的代码中看起来不像它