VueX / VueJS: вызвать мутацию из другого файла - PullRequest
0 голосов
/ 15 марта 2019

Я ищу способ вызвать мутацию в хранилище из другого файла, который не является отдельным файловым компонентом.

Этот файл отвечает за управление конфигурацией axios, чтобы иметь возможность выполнять некоторые вызовы API,Я управлял некоторыми перехватчиками и хотел бы вызвать мутацию, чтобы изменить состояние хранилища уведомлений для отображения уведомления в пользовательском интерфейсе.

import axios from "axios";
import i18n from './i18n';
import Vue from 'vue';

// Define global param object for notification options
const options = {
    type: "danger"
};

// Create global Axios instance for CTC Backends API calls
const instance = axios.create({
    baseURL: process.env.VUE_APP_BACKEND_URL,
});

// Define interceptor for responses to handle certain API responses
instance.interceptors.response.use(res => {
    console.log('axiosBackend::ResponseInterceptor()', res);
    return res;
}, error => {

    if (!error.response) {

        Vue.$store.commit("SHOW_NOTIFICATION", {
            text: i18n.t("serverError"),
            type: 'error'
        });

    } 

    return Promise.reject(error.response);

});

export default instance;

1 Ответ

0 голосов
/ 15 марта 2019

Если я правильно понимаю вашу проблему. Вы должны импортировать экземпляр магазина и использовать его для вызова мутации.

import store from '@/store'
...
store.commit("SHOW_NOTIFICATION", {
...
...