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