我的按钮触发一个store commit
,该突变称为突变。超级简单的代码,但是我得到“无法读取未定义的属性'commit'”。我在做什么错了?
注意:我的商店信息包含在一个单独的文件中,但是如果不这样做,我仍然会遇到相同的问题。
组件/App.vue:
<template>
<div id="app">
<button @click="viewNextWeek">button</button>
</div>
</template>
<script>
export default {
name: 'app',
data() {
return {
msg: "TimeLOG"
}
},
methods: {
viewNextWeek: function() {
this.$store.commit('nextWeek');
}
}
}
</script>
<style></style>
src / store / index.js包含商店信息:
import Vue from 'vue';
import Vuex from 'vuex';
Vue.use(Vuex);
export default new Vuex.Store({
state: {
today: new Date(),
},
mutations: {
nextWeek() {
alert('test');
}
}
});
src / main.js:
import Vue from 'vue';
import store from './store';
import App from './components/App.vue';
new Vue({
el: '#app',
render: h => h(App)
})
答案 0 :(得分:3)
您需要在根组件中提供store
选项,以将商店“注入”到所有子组件中,请参见getting-vuex-state-into-vue-components;在main.js
中:
new Vue({
el: '#app',
store,
render: h => h(App)
})