vuex - не может отправить действие из другого модуля - PullRequest
0 голосов
/ 06 января 2020

Я разделил свой магазин Vuex на разные модули. когда я пытаюсь отправить actionA, который определен в модуле A, из действия модуля B, я получаю следующую ошибку в консоли:

actionA undefined

Я предполагаю, что это означает, что я не настроил или импортировал что-то правильно, но для жизни я не могу понять, что именно. некоторые псевдокоды для справки:

store. js:

import Vue from 'vue';
import Vuex from 'vuex';
import moduleA from './modules/moduleA';
import moduleB from './modules/moduleB';
Vue.use(Vuex);

export default new Vuex.Store({
    namespaced: true,
    modules: { 
        moduleA,
        moduleB
    },
    state: { ...
    },
    getters: { ...
    },
    mutations: { ...
    },

moduleA. js:

import Vue from 'vue';
import axios from 'axios';

export default {
namespaced: true,
    state: { 
        devices: [],
        devices_id: []
    },
    getters: { ...
    },
    mutations: { ...
    },
    actions: { ...
         async actionA(context) {
         },
         ...other actions...
    }
}

moduleB. js:

import Vue from 'vue';

export default {
namespaced: true,
    state: { 
        user_attr: null,
        user_tokens: null,
        signedIn: false
    },
    getters: { ...
    },
    mutations: { ...
    },
    actions: {
         actionB(context) {
              <some logic...>
              context.dispatch('moduleA/actionA', null, { root: true }); // THE LINE IN QUESTION
         },
         ...other actions...
    }
}

Я использую vue -cli и отправляю actionB из Vue .app следующим способом в ловушке beforeCreate (): this.$store.dispatch('moduleB/actionB');

actionB работает нормально, пока не достигнет линия выше. «undefined» говорит мне, что я либо делаю что-то не так в отправке actionA, либо пропустил какую-то другую базовую c конфигурацию запланированного магазина. чтобы быть понятным, я сохранил некоторые объекты состояния, геттеры и мутации в магазине. js основной файл, но перемещение их в другое место не решает проблему.

Любая помощь будет принята.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...