如何解决此错误“错误类型错误:无法删除 [对象数组] 的属性‘0’”

Zah*_*ikh 2 action reducers rxjs ngrx angular

on(deleteAnswerAction, (s, { answerId }) => {
    const findAnswerIndex = s.findIndex((item) => item.id === answerId);
    return s.splice(findAnswerIndex, 1);
  }),
Run Code Online (Sandbox Code Playgroud)

这是我在调度操作 deleteAnswer 时的减速器,它应该删除具有相应answerId 的答案。

Ant*_*nko 6

因为使用状态管理器是这里的主要范例:immutability。你不能改变你的状态,你只能设置一个新的状态。Splice改变原始数据源。

解决方案:

...
  const newState = [...s].splice(findAnswerIndex, 1);

  return newState;
}),
Run Code Online (Sandbox Code Playgroud)