无法从Vue组件调用vuex命名空间模块操作

时间:2018-05-19 09:33:17

标签: vue.js vuejs2 vue-component vuex vuex-modules

我有一个使用Vuex和命名空间模块的Vue组件。

// Main Component

import store from './store';
import {mapState, mapGetters, mapActions} from 'vuex';

new Vue({

store,

computed: {
    ...mapState({
       showModal: state => state.showModal,
 }),

computed: {
   ...mapState('ModuleA', {
    a: state => state.a,
 }),
 ...mapState('ModuleB', {
   b: state => state.b,
 }),


 ...mapGetters('ModuleA', { getA: 'getA' } ),
 ...mapGetters('ModuleB', { getB: 'getB' } ),

},

methods: {
...mapActions('ModuleA', [ 'doSomeA']),
...mapActions('ModuleB', [ 'doSomeB']),

},

mounted() {
  let payLoad = { ... },
  this.doSomeA(payload); // I never see this getting dispatched
}


// Store


export default new Vuex.Store({

modules: { ModuleA, ModuleB }
...
}


// Module A 

export default {
  namespaced: true,
  actions: {
    doSomeA: ({dispatch, commit, getters, rootGetters}) => payload => { // do something with payload }
...
}

因为我已经从命名空间模块映射了动作,所以我只是在我的组件中调用类似普通方法的动作。但不知怎的,它没有派出行动。知道这里出了什么问题吗?

0 个答案:

没有答案