在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ vuex報錯

vuex報錯

在使用vuex時報錯
Cannot read property apply of undefined at VueComponent.mappedAction

我的代碼:

  <div>
    商品列表
    <ul v-for="product in products">
      <li>{{product.title}} - {{product.price}}</li>
      <button @click="addCartsAction(product.id)">添加購物車</button>
    </ul>
  </div>
</template>
<script>
  import {mapState, mapActions} from 'vuex'
  export default {
    name: "product-list",
    computed: {
      ...mapState(['products'])
    },
    methods: {
      ...mapActions(['addCartsAction'])
    },
  }
</script>
<style scoped>
</style>


//store/index文件
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex);
var state = {
  products: [
    {"id": 1, "title": "iPad 4 Mini", "price": 500.01},
    {"id": 2, "title": "H&M T-Shirt White", "price": 10.99},
    {"id": 3, "title": "Charli XCX - Sucker CD", "price": 19.99}
  ],
  carts: [{id: 1, count: 1}]
};
var actions = {
  addCartsAction({state, commit}, id) {
    commit('addCarts', id)
  }
};
var mutations = {
  addCarts(state, id) {
    state.carts.push({
      id: id,
      count: 1
    })
  }
};
export default {
  state,
  mutations,
  actions,
}

我現(xiàn)在主要是只要使用addCartsAction函數(shù)就會報錯

回答
編輯回答
拼未來

Vue 中store需要是Vuex.Store對象, 在export 的時候需要new一個這個對象。

最后一部分代碼改成下面這樣:

export default new Vuex.Store({
  state,
  mutations,
  actions
});
2017年11月16日 00:50