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

vue.js Vue.js

阿飞A

2020-03-11

我的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

第585篇《从Vuex中的一个模块更改另一模块状态》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

1个回答
小哥卡卡西 2020.03.11

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

像这样:

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

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android