这是在我迁移到最新版本的 NGRX 后发生的 “@ngrx/组件商店”:“15.2”, "@ngrx/effects": "15.2.0", “@ngrx/路由器商店”:“15.2.0”, “@ngrx/store”:“15.2.0”, “@ngrx/store-devtools”:“15.2.0”,
users$= createEffect(() => this.actions$
.pipe(
ofType(users.LOAD_USERS),
tap((action: users.LoadUsersAction) => {
action.item.name = action.payload;
action.item.id = action.payload.map(item => item.id);
})));
它给出 TypeError: Cannot add property name, object is not extensible at这两行的 name 和 id。
已经尝试过以下方法,但没有一个起作用:-
action.item = {
...action.item,
name: action.payload,
id: action.payload.map(item => item.id)
----------------------------------
const newItem = {
...action.item,
name: action.payload,
id: action.payload.map(item => item.id)
};
------------------
action.item = Object.assign({}, action.item, {
name: action.payload,
id: action.payload.map(item => item.id)
});
动作(和状态)是不可变的。 当您直接更新属性时,这会导致错误。 理想情况下,您应该重写代码,但您也可以禁用这些检查。 有关更多信息,请参阅https://ngrx.io/guide/store/configuration/runtime-checks