有没有办法可以在Redux的动作创建器中返回多个嵌套闭包?
考虑一个 log
动作创建者而不是接受 log(topic, level, message)
,可以写成4个嵌套函数,每个函数只接受整个参数的一个范围,如 topic => level => message => (dispatch, getState)
?
直线前进:
function log(topic, level, message) {
return {type: 'LOG', topic, level, message };
}
嵌套:
function log(topic) {
return function(level) {
return function(message) {
return function(dispatch, getState) {
dispatch({ type: 'LOG', topic, level, message });
}
}
}
}
Redux-thunk
我知道 redux-thunk 正在使用类似的模式,利用Redux中间件系统来提供异步动作创建器,但无法使其与我想要的模式一起工作 .
1 回答
使用plain redux,所有动作函数都必须返回一个简单的JavaScript对象 . 诸如
thunk
之类的中间件允许您将thunk中间件将解析的函数返回到最终JavaScript对象以供redux处理 . 我看到的模式是该函数返回一个函数,该函数接受一个参数dispatch
:请注意,这未经过测试 . 希望这能为您提供一般的想法 .