我在 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 函数中调用 close 函数,而不需要对 open 函数的 SWITCH 中的每个 CASE 进行双重调度?
通过双重调度,我的意思是......
return dispatch => {
dispatch({type: CLOSE_AUTH_DIALOGS})
dispatch({type: OPEN_SOME_DIALOG)}
}
如果可能的话,我只想调用一次关闭,然后返回指定的打开。
蒂亚!