我正在使用Redux Toolkit v1.9.0和React 18.2.0。我得用内部调度。代码示例
data.forEach(item => {
batch(()=>store.dispatch(createTrack(item)));
})
当我在看redux documantation的时候,我看到了一条信息“如果你使用的是React 18,你不需要使用批处理API。React 18自动批量处理所有状态更新,无论它们在哪里排队。
但是当我在看reduxtoolkit documantation的时候,我看到了一个批量附魔者。
我应该怎么做删除批处理功能一样
data.forEach(item => {
store.dispatch(createTrack(item));
})
或更换减速器?
1条答案
按热度按时间vojdkbi01#
是的,React-Redux导出的
batch()
util只在React 17及更早版本中才需要。React 18自动将单个事件循环中的所有排队状态更新批处理到一个重新渲染中。然而,RTK中的
autoBatchEnhancer
做了一些不同的事情。它减少了Redux商店尝试通知订阅者(组件)商店状态已更新的次数,* 如果 * 它看到标有“此操作是低优先级”字段的操作。这与React自己的批处理是分开的。几年前我写了一篇文章,比较了几种Redux批处理技术:
RTK 1.9发行说明讨论了自动批处理增强器: