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

如何在Redux Toolkit中向空数组状态追加对象

Redux Toolkit 向数组追加对象的正确实现

你当前编写的扩展运算符覆盖数组的写法本身是符合Redux Toolkit语法规则的,RTK底层基于Immer实现,支持「返回全新状态」和「直接修改代理状态」两种更新模式。
如果你的代码运行报错,大概率是触发了Immer的使用限制,或者是dispatch、切片注册的环节有问题。

更符合RTK开发习惯的简洁写法如下,直接调用数组的push方法即可:

getCurrentTime: (state, action) => {
  // 直接对Immer代理的数组调用push方法,会自动生成不可变更新
  state.currentTimeOfServices.push({
    startTime: action.payload.startTime,
    name: action.payload.name
  })
}

注意:同一个reducer函数中不允许同时修改状态、又返回新状态,两种写法只能选择其一,否则会直接抛出异常。

如果需要验证逻辑是否正常,可以在reducer内打印action.payload确认参数传递是否正确,打印state.currentTimeOfServices确认数组更新结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 16:57:03