web-dev-qa-db-ja.com

Vuexの1つのモジュールから別のモジュールの状態を変更する

Vuexストアに2つのモジュールがあります。

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

モジュールloadingには、savingまたはtrueのいずれかを設定できるfalseプロパティと、_TOGGLE_SAVING_という名前の変更関数があります。このプロパティを設定します。

モジュールpostsで、投稿を取得する前後に、プロパティsavingを変更します。 postsモジュール内のアクションの1つからcommit('TOGGLE_SAVING')を呼び出すことでそれを行っています。

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

コミットしようとしたときに、コンソールに次のエラーが表示されました

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

commitを使用して別のモジュールの状態を変更するにはどうすればよいですか?

32
Fizer Khan

here ;推奨される次のパラメーターで試してください。

commit('TOGGLE_LOADING', null, { root: true })

namespacedをtrueに設定している場合(Nuxtでは、モジュールモードのときのデフォルト)、これは次のようになります。

commit('loading/TOGGLE_LOADING', null, { root: true })
59
Saurabh

action を使用して、別のモジュールで定義された突然変異をコミットできます。その後、別のモジュールで状態を変更します。

このような:

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