【问题标题】:VueX/VueJS: call mutation from another fileVueX/VueJS:从另一个文件调用突变
【发布时间】:2019-03-15 10:57:25
【问题描述】:

我正在寻找从另一个不是单个文件组件的文件中调用存储上的突变的方法。

这个文件负责管理 axios 配置以便能够进行一些 API 调用。我管理了一些拦截器,我想调用一个突变来更改通知存储的状态以在 UI 中显示通知。

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;

【问题讨论】:

    标签: vue.js vuejs2 axios vuex


    【解决方案1】:

    如果我正确理解您的问题。您必须导入 store 实例并使用它来调用突变。

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

    【讨论】:

      【解决方案2】:
      import {store} from './store';
      
      store.commit("SHOW_NOTIFICATION", paylo )
      

      【讨论】:

        猜你喜欢
        • 2018-03-22
        • 1970-01-01
        • 2017-01-21
        • 2016-12-23
        • 2022-01-23
        • 1970-01-01
        • 1970-01-01
        • 2019-06-12
        • 1970-01-01
        相关资源
        最近更新 更多