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

NgRx中删除store条目功能失效问题求助

问题根因
  • NgRx要求reducer为纯函数,禁止直接修改原状态,必须返回全新的状态副本
  • 你当前删除逻辑里使用的splice是数组原地修改方法,直接修改了原状态对象,触发了NgRx内置的状态不可变性校验,所以抛出错误
  • 添加功能正常是因为你用了展开运算符[...state, action.payload]返回了全新数组,符合不可变要求
修复方案

只需要修改reducer中REMOVE_TUTORIAL分支的逻辑即可,有两种常见实现方式:

方案1:用filter方法过滤要删除的索引

case TutorialActions.REMOVE_TUTORIAL:
  return state.filter((_, index) => index !== action.payload);

方案2:用slice方法切割数组后拼接

case TutorialActions.REMOVE_TUTORIAL:
  return [...state.slice(0, action.payload), ...state.slice(action.payload + 1)];

两种方案都没有修改原state,而是直接返回了删除指定元素后的全新数组,符合NgRx的状态规则,修复后删除功能即可正常运行。

内容的提问来源于stack exchange,提问作者mnu-nasir

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 02:45:08