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

问题描述

所以我的减速器中有这个

export interface PersonState {
  person: Person;
}

里面有一系列亲戚,我正在尝试用它来更新它:

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

但是它给了我一个错误

不能将对象'[object]的只读属性'Relatives'分配为只读 对象]'

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

解决方法

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

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...