Vuex this。$ store未定义

时间:2019-08-24 13:45:24

标签: vue.js vuex

我正在尝试通过vux和vuetify学习vue。我已经通过vue cli安装了它。

就像在文档中一样,我尝试访问商店,但是对此没有定义。$存储。

src / components / HelloWorld.vue

<script>

export default {
  methods: {
    onChangeTheme: () => {
      console.log(this.$store)
    }
  }
};
</script>

src / main.js

import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import vuetify from './plugins/vuetify';

Vue.config.productionTip = false

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

src / store.js

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {

  },
  mutations: {

  },
  actions: {

  }
})

1 个答案:

答案 0 :(得分:1)

请勿在options属性或回调函数上使用箭头功能,例如created: () => console.log(this.a)vm.$watch('a', newValue => this.myMethod())。由于箭头函数没有this,因此它将被视为任何其他变量,并在父作用域中进行词汇查找,直到找到为止,这通常会导致错误,例如Uncaught TypeError:无法读取undefined或Uncaught TypeError:this.myMethod不是功能。

这是here的说明。