You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Redux Toolkit createSlice的extraReducers和reducers执行顺序是怎样的

结论

extraReducers 的执行时机一定晚于当前 slice 中 reducers 字段定义的同 action 对应的 reducer,执行顺序是完全确定的。

你给出的示例中,调用 increment 之后 accumulate 的取值是可以100%确定的:

  • 首次调用 increment 后,先执行 reducers 中的逻辑将 count 从 0 修改为 1,再执行 extraReducers 中的匹配逻辑,将 accumulate 加 1,最终状态为 {count: 1, accumulate: 1}
  • 第二次调用 increment 后,count 先变为2,accumulate 再加2,最终状态为 {count:2, accumulate:3},以此类推。

具体执行顺序说明

createSlice 生成的 reducer 处理 action 时,固定按以下优先级执行回调:

  • 第一步:匹配 reducers 字段中定义的对应 action 类型的 reducer,执行状态修改
  • 第二步:按你编写 extraReducers 时的代码顺序,依次匹配 builder.addCase、builder.addMatcher、builder.addDefaultCase 中满足条件的回调,执行对应的状态修改

你给出的 createSlice 写法,和你贴的普通 Redux reducer 实现的效果完全一致,都是先修改 count 再修改 accumulate,最终状态结果没有差别。

内容的提问来源于stack exchange,提问作者ichti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 20:12:02