У меня есть ApiService()
, что я абстрагирую свои вызовы API. Я хотел бы dispatch('SET_BUSY')
и dispatch('SET_NOT_BUSY')
приложения уровня мутации внутри службы, но я получаю следующее сообщение об ошибке:Отказоустойчивые мутации из служебного файла
TypeError: dispatch is not a function. (In 'dispatch('SET_BUSY')', 'dispatch' is undefined)
/vuex/actions.js
import { ApiService } from './services';
export const setAppMode = function ({ dispatch }) {
ApiService({
noun: 'Application',
verb: 'GetMode'
}, response => {
dispatch('SET_APP_MODE', response.Data.mode);
},
dispatch);
};
/vuex/services.js
import Vue from 'vue';
export const ApiService = (options = {}, callback, dispatch) => {
let endpoint = 'localhost/api/index.php';
let parameters = options.data;
dispatch('SET_BUSY');
Vue.http.post(endpoint, parameters, []).then((promise) => {
return promise.text();
}, (promise) => {
return promise.text();
}).then(response => {
response = JSON.parse(response);
dispatch('SET_NOT_BUSY');
if (response.Result === 'ERROR') {
console.log('ERROR: ' + response.Error.Message);
}
callback(response);
});
};
'' vue ":"^1.0.21 "и' "vuex": "^ 1.0.0-rc.2" '. У меня есть действие под названием 'setAppMode()', которое я импортирую в компонент 'App.vue' и ссылку 'this.setAppMode()'. – Donnie
Возможно, вы добавили 'setAppMode' в' методы' vm ... Вместо этого вы должны использовать 'vuex'. Я добавил дополнительную информацию в ответ. Я надеюсь, что это помогает. –
О, я понимаю, что тебе нужно. Да, это метод, который я использовал для импорта и использования его в 'App.vue', который работает (помимо отправки). – Donnie