1. ホーム
  2. vue.js

[解決済み] Vuexで1つのモジュールから別のモジュールの状態を変更する

2023-01-01 17:06:12

質問

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

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

モジュールの中で loading で、プロパティ saving のどちらかを設定することができます。 true または false という名前の変異関数も持っています。 TOGGLE_SAVING を使ってこのプロパティを設定します。

モジュールの中で posts で、投稿を取得する前と後に、プロパティの 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 ?

どのように解決するのですか?

次のパラメータを指定して試してみてください。 ここで ;

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

もし namespaced をtrueに設定すると(Nuxtではモジュールモード時のデフォルトです)、こうなります。

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