NgRx-etc:无法分配给对象“[Object]”的只读 属性 'Property'

NgRx-etc: Cannot assign to read only property 'Property' of object '[Object]'

所以我的减速机里有这个:

export interface PersonState {
  person: Person;
}

里面有一组亲戚,我正在尝试用这个更新它:

mutableOn(PersonActions.addRelatives, (state, { relatives }) => {
    const person = state.person;
    person.relatives = relatives;
})

但它给了我一个错误:

Cannot assign to read only property 'Relatives' of object '[object Object]'

我对 NgRx 和 Immer 很陌生,所以我不知道我做错了什么。有什么线索吗?

你试图修改不可变的人,这是禁止的。更新你的人的正确方法是

mutableOn(PersonActions.addRelatives, (state, { relatives }) => {
     return {
       ...state,
       person: {
         ...state.person,
         relatives,
       }
     };
})