0

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

// 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 }
...
}

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

4

0 回答 0