我目前正在使用 redux 和 redux-thunk 中间件。
涉及有关行动调度的控制措施,例如:
我相信将这些控件置于异步操作( thunk )中是可行的方法,因为:
问题
我正在寻找其他redux用户的反馈。我很公平 对这个决定充满信心,但反馈很少(和存在 初级开发)让我怀疑。这是正确的方法吗? 授权控制何时使用redux?
如何将授权控制器转换为
的中间件即可。它会将auth控件保留在一个地方,而不是在每个actionCreator中复制它
的修改
当深入研究这种可能性时,它很快变得具有挑战性,因为中间件最初只接收(dispatch, getState)
,这意味着授权中间件需要“知道”正在调度哪个动作(或者正在使用哪个actionCreator),需要一个hacky-ish设置并最终被证明是不可靠的。
其他要点
答案 0 :(得分:2)
我认为你很适合自己的设置。 Thunk是编排程序流的好方法。还有像redux-saga这样的其他中间件,它有点复杂但据我所知你想做这样的事情(伪代码)?
function authorizeAndTriggerAction(forUser) {
return function (dispatch) {
return authorizeUser().then(
action => dispatch(concreteAction(forUser)),
error => dispatch(notAuthorized(forPerson, error))
);
};
}
这可以通过thunk完成。