Vue.js 未在vue中定义状态

Vue.js 未在vue中定义状态,vue.js,vuex,Vue.js,Vuex,大家好,我关注一切,不提供谷歌,但没有这些工作我是新的vuex 3.0.1和vue 2.5下面的我的代码 import Vue from 'vue' import App from './App' import router from './router' import axios from 'axios' import store from './store' Vue.prototype.$http = axios; var VueResource = require('vue-res

大家好,我关注一切,不提供谷歌,但没有这些工作我是新的vuex 3.0.1和vue 2.5下面的我的代码

import Vue from 'vue'
import App from './App'
import router from './router'
import axios from 'axios'
import store from './store'

Vue.prototype.$http = axios;


 var VueResource = require('vue-resource');
 Vue.use(VueResource);


   router.beforeEach((to, from, next) => {
     console.log(this.$store.state.authUser)// this is not working
      if (to.matched.some(record => record.meta.requiresAuth) && 
        (!this.$store.state.authUser || 
  this.$store.state.authUser === 'null')){
  const authUser = localStorage.getItem('authUser')
   console.log('here log');
   next({ path: '/', })

 }else{
   console.log('bhar else redirect');
  next()  
 }

});
 new Vue({
   el: '#app',
    router,
    store,
   template: '<App/>',

    components: {
     App
     }
 })
这是我的用户商店

 const state = {
   authUser:null
    }
const mutations  = {
    SET_AUTH_USER(state,userObj){
        state.authUser = userObj
        }
 }
   const actions = {
    setUserObject :({commit},userObj) =>{
        commit('SET_AUTH_USER',userObj)
     }
   }
  export default {
      state, mutations, actions
 }
这是我的登录成功,从这里我尝试分派存储中的值注意,我有存储中的值

  this.$store.dispatch('setUserObject',response.data.id)

我一切都做得很好,但不知道为什么它会抛出错误,无法读取未定义的属性“state”

您在每次使用
this.$store
保护之前访问路由器
中的存储。但是
不是您的vue实例,并且没有
$store
属性

由于您是使用
import store from./store'
导入门店,因此您可以使用该
store
导入来访问门店,如下所示:

router.beforeEach((to, from, next) => {
     console.log(store.state.userStore.authUser)// this will log put authUser from userStore module
      if (to.matched.some(record => record.meta.requiresAuth) && 
        (!store.state.userStore.authUser || 
  store.state.userStore.authUser === 'null')){
  const authUser = localStorage.getItem('authUser')
   console.log('here log');
   next({ path: '/', })

 }else{
   console.log('bhar else redirect');
  next()  
 }

});
authUser
属性属于
userStore
模块,因此要访问它,您可以使用

store.state.userStore.authUser

谢谢,我还有一个问题,那就是如何在router.beforeach内设置axios头
store.state.userStore.authUser