react-redux - react-redux 钩子中的顺序调度操作
问题描述
我正在使用 useDispatch() 函数向我返回一个调度对象来触发一些操作。
我有一个特殊的场景,我想触发一个拒绝操作来取消用户的请求,并且在从服务器返回响应(无论它是否成功)之后,我将决定是否应该触发另一个操作。
我的方法如下所示:
const reject = () => {
dispatch(method1(data));
dispatch(fetchAll());
}
当我观察我的开发者控制台上的日志时,两者method1()
都会fetchAll()
在不等待响应的情况下启动。
在处理 fetchAll() 之前,如何确保 method1() 返回某个值?
解决方案
你需要使用redux-thunk中间件。看看作文
Redux Thunk 中间件允许您编写返回函数而不是操作的操作创建器。thunk 可用于延迟动作的分派,或仅在满足特定条件时分派。
然后您可以像这样发送操作:
const reject = () => {
dispatch(method1(data)).then(res => {
if(res.success) {
dispatch(fetchAll());
}
})
}
推荐阅读
- java - 为什么我不能在 Java 8 中继续使用带有 Collections#forEach 的标签?
- php - Laravel 分页链接在空输入期间不起作用
- objective-c - 带有 Swift 的爱普生打印机找不到 arm64 的符号
- c# - 将带有 REST API 调用的 JS 函数转换为 ASP.Net C# 代码
- angular - 在单个 jenkins 工作节点上构建多个 Angular 项目
- r - 为什么 text2vec 中的 LSA 每次都会产生不同的结果?
- python - 构建文件:build.xml 不存在!(Pgs4a -Android.py 构建版本)
- reactjs - 将 reactjs 与 postgraphile 集成
- python - 比较 Python 中 get 请求的预期与实际 json 响应
- python - RuntimeError:尺寸不匹配,m1:[28 x 28],m2:[784 x 128]