react-redux hook 中的顺序调度操作

Sequential dispatch action in react-redux hook

我正在使用 useDispatch() 函数 return 我是一个调度对象来触发一些动作。

我有一个特定的场景,我想触发一个取消用户请求的拒绝操作,在从服务器返回响应后(无论成功与否)我将决定是否应该触发另一个动作。

我的方法是这样的:

const reject = () => {
  dispatch(method1(data));
  dispatch(fetchAll());
}

When.i 观察开发人员控制台上的日志,method1()fetchAll() 都在未等待响应的情况下触发。

如何确保 method1() return 在处理 fetchAll() 之前有一些值?

您需要使用redux-thunk middleware. Take look at Composition

Redux Thunk middleware allows you to write action creators that return a function instead of an action. The thunk can be used to delay the dispatch of an action, or to dispatch only if a certain condition is met.

然后你可以像这样发送动作:

const reject = () => {
  dispatch(method1(data)).then(res => {
    if(res.success) {
      dispatch(fetchAll());
    }
  })
}