react构建过程中会处于一个大的事务中,先将isBatchingUpdates设置为true,正在处于批量更新的过程,后续的setstate并不会立马被更新而是都会先进入到脏组件中,当该大事务结束时isBatchingUpdates设置为false,即关闭批量更新的标志,然后就是以事务的形式开始执行函数flushBatchedUpdates(真正开始批量更新state),flushBatchedUpdates中又会先以事务执行runBatchedUpdates批量遍历脏组件更新state,然后再以事务执行ReactUpdatesFlushTransaction,这个是执行setstate中的回调函数,这样就保证了在setstate中的回调函数可以拿到最新的state。回调函数是在生命周期执行完毕之后才执行的即componentdidupdate执行完毕。
https://segmentfault.com/a/1190000010785692