React 18+Redux-Toolkit v1.9.0中forEach内dispatch是否需用batch?
React 18 + Redux-Toolkit v1.9.0中forEach循环dispatch的批量处理方案
直接删除batch调用即可,不需要修改reducer,具体原因如下:
- React 18会自动批量处理所有同步事件触发的状态更新,包括forEach循环里的多次
dispatch操作——不管是React自身的setState还是Redux的dispatch,都会被合并为一次重渲染,无需手动调用batchAPI。 - Redux-Toolkit v1.9.0默认已经适配了React 18的自动批量机制,内部逻辑会和React的批量处理协同工作,不需要额外配置。
autoBatchEnhancer是针对非React环境(比如Node.js服务端、非React的前端场景)或需要自定义批量时机的场景设计的,你的React 18前端项目用不到它。
修改后的代码示例:
data.forEach(item => { store.dispatch(createTrack(item)); })
内容的提问来源于stack exchange,提问作者Neo
相关产品推荐
相关产品推荐

