Redux 操作创建者在另一个内部调用一个
Redux action creators invoke one inside another
我在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;
}
}
...
打开工作正常,但关闭函数永远不会被触发。有没有办法从打开函数中调用关闭函数,而无需在打开函数的开关中为每个 CASE 重复调度?
通过双重调度,我的意思是...
return dispatch => {
dispatch({type: CLOSE_AUTH_DIALOGS})
dispatch({type: OPEN_SOME_DIALOG)}
}
如果可能的话,我只想调用收盘价一次,然后返回指定的开盘价。
啪!
你需要使用像redux-thunk这样的中间件。这里的安装说明,但基本上你需要在设置商店时应用它:
const store = createStore(
rootReducer,
applyMiddleware(thunk)
);
这将允许您从操作返回函数。 像这样的事情应该这样做:
export function openDialog(dialog) {
return (dispatch) => {
dispatch(closeAuthDialogs());
switch (dialog) {
case 'login':
return dispatch({type: OPEN_LOGIN})
case 'register':
return dispatch({type: OPEN_REGISTER})
case 'forgot':
return dispatch({type: OPEN_FORGOT})
case 'change':
return dispatch({type: OPEN_CHANGE})
case 'profile':
return dispatch({type: OPEN_PROFILE})
default:
return;
}
}
}
相关文章:
- D3在一个调用中绘制不同的SVG形状,没有可见性
- jQuery/Javascript-是否可以获得链中的下一个调用
- 角度 2:使用一个 http 调用的结果来执行另一个调用
- AngularJs 从指令中的另一个调用控制器
- 如何运行一个调用某个函数的函数首先完成它,然后再调用下一个函数.正在创建回调函数
- 如何在Javascript中创建一个调用其他函数的函数
- 从同一对象中的另一个调用函数
- Angularjs元素在一个调用中同时查找select和input-这是单个标记查找的极限
- 制作一个调用'回调函数'
- 如何通过AngularJS中的一个调用在多个控制器($scope)中插入相同的数据
- Meteor 与 Session.set 和 jQuery 在一个调用中组合在一起
- 有没有办法在浏览器中停止HTTP AJAX调用,以便另一个调用可以继续
- 在 Ember.js 2.3 中,如何将 hasMany 异步调用编译为 ember 中的一个调用而不是多个调用
- 延迟链接 - 然后在上一个调用完成但出现错误时调用成功回调
- 一个 Javascript 函数,它创建一个调用函数本身的对象
- 如果我从JS调用SWF,它已经忙于处理来自JS的另一个调用,会发生什么
- 将全局onBeforeCall侦听器附加到除一个调用之外的所有AJAX调用
- Javascript只执行最后一个调用的函数
- jQuery在一个调用中验证远程解析两个字段
- 如何创建一个调用函数的函数