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 });
};