Vuex モジュールのactionの処理で別モジュールのactionをコールする
Vuexのモジュール内のactionの処理で別モジュールのactionをコールする方法を紹介します。
ルートのactionの場合、moduleで定義したactionをコールする場合は、以下のようにモジュール名/アクション名の形式でaction名を指定します。
export const actionA = async ({ dispatch }) => {
await dispatch(`moduleY/actionB`, パラメータ);
};例えばmoduleXのactionからmoduleYのactionをコールしたい場合は上記の方法ではうまくいかないので、以下のように第3パラメータに{ root: true }を指定します。
export const actionA = async ({ dispatch }) => {
await dispatch(`moduleY/actionB`, パラメータ);
await dispatch(`moduleY/actionB`, パラメータ, { root: true });
};