【问题标题】:Sequential dispatch action in react-redux hookreact-redux 钩子中的顺序调度操作
【发布时间】:2021-05-17 04:25:36
【问题描述】:

我正在使用 useDispatch() 函数返回一个调度对象来触发一些操作。

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

我的方法是这样的:

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

当我观察我的开发者控制台上的日志时,method1()fetchAll() 都在不等待响应的情况下触发。

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

【问题讨论】:

    标签: react-redux react-hooks dispatch


    【解决方案1】:

    您需要使用redux-thunk 中间件。看看Composition

    Redux Thunk 中间件允许您编写返回函数而不是动作的动作创建器。 thunk 可用于延迟操作的分发,或者仅在满足特定条件时分发。

    然后您可以像这样调度操作:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-09
      • 1970-01-01
      • 2020-09-10
      • 2020-08-18
      • 1970-01-01
      • 2022-01-12
      • 1970-01-01
      • 2020-02-20
      相关资源
      最近更新 更多