从Vuex中的一个模块更改另一模块状态

我的vuex商店中有两个模块。

var store = new Vuex.Store({
    modules: {
        loading: loading 
        posts: posts
    }
});

在模块中loading,我具有saving可以设置true的属性false并且还具有名为TOGGLE_SAVING该属性的突变函数

在模块中posts,在获取帖子之前和之后,我想更改property saving我是通过commit('TOGGLE_SAVING')posts模块中的操作之一进行调用来实现的

var getPosts = function (context) {
    contex.commit(TOGGLE_LOADING);
};

当它尝试提交时,控制台中出现以下错误

[vuex] unknown local mutation type: TOGGLE_LOADING, global type: posts/TOGGLE_LOADING 

如何使用来更改另一个模块中的状态commit

小哥卡卡西2020/03/11 11:10:05

您可以使用操作来提交在另一个模块中定义的突变,然后在另一个模块中修改状态。

像这样:

posts: {
  actions: {
    toggleSavingActions(context) {
      // some actions 
      context.commit("TOGGLE_SAVING"); // defined in loading module
    }
  }
}