我正在尝试对自己的状态做出反应,而我的状态是
This.state = {
Name: "alex",
Referrals: [
{
Id: 1,
HasRegistered: false,
friend: {
Name: "john",
Age: "19",
Amount: 150
}
},
{
Id: 2,
HasRegistered: false,
friend: {
Name: "jane",
Age: "18",
Amount: 100
}
}
]
}
如何更改引荐数组中每个对象的属性
我尝试使用:
This.setState(prevState => {
Return prevState.referrals.map(user =>
{
Return {
...user,
HasRegistered: !user.HasRegistered,
friend: {
...user.friend,
Amount: user.friend.amount += 10
}
}
})
})
注意:我使用onClick事件触发状态更改,并考虑了每个用户的ID。 该代码将数量增加10,但不会将HasRegistered布尔值更改为true 请问我该怎么办?
答案 0 :(得分:0)
您在这里有一个正确的想法,但是也许您看到的问题是,由于prevState
具有referrals
属性,但您返回的{ 1}}调用,您只返回映射的引荐数组。另外,您还有一个setState
可以修改原始对象。请改用此方法(我认为所有这些大写字母都是错误的):
+= 10