2016-02-14 88 views
3

我目前使用还原还原thunk中间件。Redux,操作,授权

当谈到有关行动调度控制,如:

  • 确实用户有这个动作足够的权限?
  • 提示用户确认他的行为(破坏性行动

我相信把这种控制异步操作​​()是要走的路,里面的原因是:

  • 它会让我的代码DRYer(许多组件/视图可能触发 操作,而对于所述操作只有一个actionCreator
  • 这是应用程序中“发生某些事情”之前的最后一点。让它感觉像是进行这种控制的一个战略地点。

  1. 我在寻找其他终极版用户反馈的问题(一个或多个)。我相当 有信心这个决定,但几乎没有反馈(和 初中开发)让我怀疑。这是正确的方式去 授权控制使用REDX?

  2. 什么使得授权控制器到 中间件。它会将验证控件保存在一个地方,而不是在每个ActionCreator中复制它。
    编辑 当更深的挖掘到这种可能性,它很快就成为挑战,因为中间件最初只收到(dispatch, getState)意味着授权中间件将需要“知道”被分派哪个动作(或正在使用actionCreator),这东西需要一个hacky-ish设置,并最终被证明是不可靠的。

其他景点

  • 是的,这是客户端。是的,我们也进行服务器端检查。
  • 我知道这些类型的控件不应该在我的商店/减速器中。他们需要是纯洁的。

回答

2

我认为你很乐意配合你的设置。 Thunk是编排程序流程的好方法。还有其他一些中间件,比如redux-saga,它有点复杂,但据我所知,你想做这样的事情(伪代码)?

function authorizeAndTriggerAction(forUser) { 
    return function (dispatch) { 
    return authorizeUser().then(
     action => dispatch(concreteAction(forUser)), 
     error => dispatch(notAuthorized(forPerson, error)) 
    ); 
    }; 
} 

这可以用thunk来完成。

+0

是的,这就是我们推荐的。这或者像Redux Saga这样的复杂工作流程。 –