所以,我有一个状态,users
其中充满了来自后端的对象数组。比如说,我想从该数组中更新特定用户对象的详细信息,然后使用更新后的详细信息更新当前状态。我该怎么做?
我目前所做的是在更新请求成功后强制从服务器重新获取以再次更新状态,但我想知道是否有更好的方法来做到这一点而无需再次从服务器重新获取。
例如,在下面的代码中。我想更新第二个人的年龄。
state = {
users: [
{
name: PersonOne,
age: 1
},
{
name: PersonTwo,
age: 1
}
]
}
假设id
您的对象中有字段。您可以使用map
函数返回新数组并将其保存到您的状态。
updateUser(userId){
const updatedUsers = this.state.users.map( (user) => {
if(userId !== user.id) {
return user;
}
return {
...user,
//write some updated info here, for example:
age: 40
}
}):
this.setState({
users: updatedUsers
});
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句