Vuex:为什么我的突变提交调用失败?

时间:2018-09-26 18:38:09

标签: vue.js vuex

我的按钮触发一个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)
})

1 个答案:

答案 0 :(得分:3)

您需要在根组件中提供store选项,以将商店“注入”到所有子组件中,请参见getting-vuex-state-into-vue-components;在main.js中:

new Vue({
  el: '#app',
  store,
  render: h => h(App)
})