我正在尝试更新可观察对象数组中的一个对象并收到错误: 类型错误:无法分配给对象“[object Object]”的只读属性“名称”。 我该如何解决这个问题?
export interface User {
id: string
name : string
lastname: string
email: string
address: string
password: string
}
allUsers = signal<Observable<User[]>>(new Observable())
this.allUsers.update(val => val.pipe(map(users => users.map((user:User)=>{
if(user.id == "65c2a622878dcef34ed569ad"){
user.name = "new Name"
user.lastname = "new Lastname"
user.address = "new Address"
user.password = "new Password"
}
return user
}))))
问题是数组中的对象是
immutable
,所以你不能直接修改它们的属性。
相反,您需要返回具有更新属性的新对象。
this.allUsers.update((val) =>
val.pipe(
map((users) =>
users.map((user: User) => {
if (user.id == "65c2a622878dcef34ed569ad") {
return {
...user,
name: "new Name",
lastname: "new Lastname",
address: "new Address",
password: "new Password"
};
} else {
return user;
}
})
)
)
);
我希望这对您有帮助。干杯🥂