本人看过redux的源码。你的问题跟桥接库react-redux这个库无关,单纯跟核心库redux有关。dispatch方法的实现代码很简单:

if (isDispatching) {

throw new Error('Reducers may not dispatch actions.')

}

try {

isDispatching = true

currentState = currentReducer(currentState, action)

} finally {

isDispatching = false

}

const listeners = (currentListeners = nextListeners)

for (let i = 0; i < listeners.length; i++) {

const listener = listeners[i]

listener()

}

可以看出在dispatch方法的内部实现中,是先算出最新的state后,再通知所有的订阅者,这是一个同步的过程。而多个dispatch()的调用也是同步的,标志位isDispatching就是一个佐证。

如果你正在使用的是原生的dispatch方法(也就是说没有被中间件增强过),那么你连续dispatch连个action,大概是这么一个同步流程:dispatch({type: "A"});

根据{type: "A"}来计算出最新的stateA

把最新的stateA给到所有的订阅者(订阅者一般负责更新界面)

dispatch({type: "B"});

根据{type: "B"}来计算出最新的stateB

把最新的stateB给到所有的订阅者

只要你现在是在我上面所说的前提下,并且你保证你上面提到的两条语句的执行

const status = yield select((state) => state.status);

const data = yield select((state) => state.data);

是在连续的dispatch调用之后,那么就不会出现你所说的“我从store里取到status是succeed,但是数据是空的,也就是data是空的。”的情况。

react中dispatch_react-redux中连续两次dispatch-actions有顺序吗?相关推荐

  1. JAVA中如何交换两个List集合的顺序呢?

    在JAVA中我们该如何交换两个List集合的顺序呢? /*** 交换两个集合的顺序* * @param a a集合* @param b b集合*/public static void swapList ...

  2. 【React+TS】从零开始搭建react+typescript+router+redux+less+px2rem自适应+sass+axios反向代理+别名@+Antd-mobile

    一.通过create-react-app脚手架创建项目 npx create-react-app testproject --template typescript 在vscode中打开项目,可以看到 ...

  3. 【React+TS】从零开始搭建react+typescript+router+redux+less+pxToVw自适应+sass+axios反向代理+别名@+Antd-mobile

    一.通过create-react-app脚手架创建项目 npx create-react-app testproject --template typescript  在vscode中打开项目,可以看 ...

  4. 连续两年!PingCAP 入选 Gartner 云数据库“客户之声”,获评“卓越表现者”最高分

    近日,全球权威信息技术研究与咨询机构 Gartner 发布了云数据库市场领域 2023 Gartner® Peer Insights™"Voice of the Customer" ...

  5. 优雅的在React项目中使用Redux

    概念 首先我们会用到哪些框架和工具呢? React UI框架 Redux 状态管理工具,与React没有任何关系,其他UI框架也可以使用Redux react-redux React插件,作用:方便在 ...

  6. 如何优雅地在React项目中使用Redux

    前言 或许你当前的项目还没有到应用Redux的程度,但提前了解一下也没有坏处,本文不会安利大家使用Redux 概念 首先我们会用到哪些框架和工具呢? React UI框架 Redux 状态管理工具,与 ...

  7. Redux中的功能式React式编程简介

    by Bhuvan Malik 通过布凡·马利克(Bhuvan Malik) Redux中的功能式React式编程简介 (An introduction to functional Reactive ...

  8. 如何react中使用redux和react-redux

    Redux Redux 是 JavaScript 状态容器,提供可预测化的状态管理. 可以让你构建一致化的应用,运行于不同的环境(客户端.服务器.原生应用),并且易于测试. 不仅于此,它还提供 超爽的 ...

  9. 优雅的在React项目中使用Redux 1

    或许你当前的项目还没有到应用Redux的程度,但提前了解一下也没有坏处 首先我们会用到哪些框架和工具呢? React UI框架 Redux 状态管理工具,与React没有任何关系,其他UI框架也可以使 ...

  10. 如何在React Native中使用Redux Saga监视网络更改

    by Pritish Vaidya 通过Pritish Vaidya 如何在React Native中使用Redux Saga监视网络更改 (How to monitor network change ...

最新文章

  1. JavaScript面向对象中的严格模式
  2. html table相关标签和属性
  3. 人工神经网络 说到底,人就是一种机器吗?
  4. VC/VS开发问题集锦
  5. 材料真的是朝阳行业吗?
  6. 如何在 Mac 上设置和使用快捷方式?
  7. PMP第十章:项目沟通管理
  8. 【python学习】python实现利用pygame绘画基本图形、显示图片,实现图形图片随机效果。python绘制行列图片
  9. mac读取ntfs移动硬盘
  10. 日记(菜的连比赛都参加不了)
  11. FIL新一轮上涨:FIL算力通证迎来新热潮
  12. 2021年最新最全Flink系列教程_Flink快速入门(概述,安装部署)(一)(JianYi收藏)
  13. Arduino Uno + PAJ7620U2 实现手势识别控制LED灯工作
  14. html发票页面,HTML5 发票模板
  15. Operand of null-aware operation ‘!‘ has type ‘SchedulerBinding‘ which excludes null.
  16. Linux基础学习Day2之基本概念及操作
  17. iOS开发中使用UILabel设置字体的相关技巧小结
  18. java gis 最短路径_用Postgis算最短路径(在任意位置选择起点终点)(下)
  19. 代码零改动Serverless架构升级?
  20. CBE可表示计算机辅助教育,计算机辅助教育(CBE)的理论基础概述

热门文章

  1. 3.0_Linux如何连接网络
  2. 二级域名怎么设置_杭州360关键词优化怎么做,360SEO优化_万推霸屏
  3. 什么是前端开发工程师
  4. mac接收gmail邮件_如何从您的Gmail帐户发送和接收Hotmail
  5. 一篇文章带你看遍Google I/O 2019大会
  6. BUG记录:org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is no
  7. Linq中Skip和Take用法(TakeWhile和SkipWhile用法)
  8. 计算机中丢失XINPUT无法修复,xinput1_3.dll丢失怎么修复
  9. 计算机缓存设置方法,如何清除电脑缓存?清除电脑缓存方法介绍
  10. oracle 11g crsd ocssd,[Oracle 11g r2(11.2.0.4.0)]集群守护进程gipc介绍