私はReduxでアヒルを使用していますが、それは質問とは関係ありません。同じファイルにいくつかのアクション クリエーターがあり、一方を他方から呼び出したいと考えています (下の SWITCH のすべての CASE に対して二重にディスパッチする必要がないことを願っています)。
...
export function closeAuthDialogs() {
return {type: CLOSE_AUTH_DIALOGS}
}
export function openDialog(dialog) {
// close any open dialogs
dispatch => {dispatch(closeAuthDialogs())} // <--THIS DOES NOT GET CALLED!!!
//open the one we need
switch (dialog) {
case 'login':
return {type: OPEN_LOGIN}
case 'register':
return {type: OPEN_REGISTER}
case 'forgot':
return {type: OPEN_FORGOT}
case 'change':
return {type: OPEN_CHANGE}
case 'profile':
return {type: OPEN_PROFILE}
default:
return;
}
}
...
オープンは正常に機能しますが、クローズ機能は起動されません。open 関数の SWITCH で CASE ごとに二重にディスパッチせずに、open 関数内から close 関数を呼び出す方法はありますか?
二重ディスパッチとは、次のようなことを意味します...
return dispatch => {
dispatch({type: CLOSE_AUTH_DIALOGS})
dispatch({type: OPEN_SOME_DIALOG)}
}
可能であれば、close を 1 回だけ呼び出してから、指定された open を返したいと思います。
ティア!