开发者问题收集

Vuex this.$store 未定义

2019-08-24
1972

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

就像在文档中一样,我尝试访问商店,但 this.$storage 未定义。

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个回答

请勿在选项属性或回调上使用箭头函数,例如 created: () => console.log(this.a)vm.$watch('a', newValue => this.myMethod()) 。由于箭头函数没有 this,因此 this 将被视为任何其他变量,并通过父作用域进行词法查找,直到找到为止,这通常会导致错误,例如 Uncaught TypeError: Cannot read property of undefined 或 Uncaught TypeError: this.myMethod is not a function。

这在 此处 中有解释。

Christian Carrillo
2019-08-24