[Vuejs]-Vuex modules: Can't use mapActions

1👍

I am glad this solved your problem:

So instead of:

import * as ModuleA from './ModuleA';

To use:

import ModuleA from './ModuleA'

Default export can be Imported directly with any alias.

0👍

Please try to use the module name in your mapActions ...mapActions("A",["FuncA"]). You can use also objects to change the action name in your component ...mapActions("A",{FunctionA:"FuncA"})

👤protob

0👍

As I see your codes, I think that you have to change some codes to import your modules based on ES6 correctly!!

so try this one:

  1. your store
// if you use index.js or store.js to store this codes,
// you have to import 'vue' and 'vuex'
import Vue from 'vue'
import Vuex from 'vuex'
import ModuleA from './ModuleA';

Vue.use(Vuex);

export default new Vuex.Store({
    state: { ... },
    getters: { ... },
    mutations: {  ... },
    actions: {  ... },
    modules: {
      ModuleA, // in ES6 if don't need property name for introduce your module
    }
});
  1. your ModuleA
// just export it
export default {
    state: { ... },
    getters: { ... },
    mutations: {  ... },
    actions: {
        // I used arrow function syntax, but you can use your syntax
        FuncA({ commit }, id) => {
            //do something
        },
    },
});

Leave a comment