如何一个接一个地分派多个动作

Ste*_*eve 19 reactjs redux

在我的react/redux应用程序中,我经常想要一个接一个地发送多个动作.

给出以下示例:成功登录后,我想存储用户数据,然后我想启动另一个从服务器加载应用程序配置的异步操作.

我知道我可以用它redux-thunk来构建这样的动作创建者

function loginRequestSuccess(data) {
  return function(dispatch) {
    dispatch(saveUserData(data.user))
    dispatch(loadConfig())
  }
}
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:

  1. 当第一个dispatch返回时,所有减少器是否已经更改了该状态?我想知道两个调度调用是否严格按顺序运行.
  2. 这种方法是否被认为是分派多项行动的最佳做法?如果没有,你还会建议什么呢?

谢谢你的帮助!

Joh*_*ohn 10

是的redux-thunk允许你按照你说的去做,是的,它是调度多个动作的最佳实践(由于它的简单性,我更喜欢替代方案).一旦你发送(当它返回时),状态确实会更新,这就是为什么你被赋予一个函数来检索thunk中的状态,而不仅仅是对状态的引用.通过这种方式,您可以使用一个分派更改状态,然后调用getState()以获取对要读取的新状态的引用(如果需要).