更新值时遇到错误。我传递了值,但状态没有更新。我正在寻找传递的ID。因此,NewArr 数组接收到不正确的数据。
state = {
mobile : [
{"id": 0, "name": "Dima", "phone": 12345},
{"id": 1, "name": "Ira", "phone": 67890},
]
saveItem = (name,phone,id) => {
let NewArr = this.state.mobile;
NewArr = NewArr.map(el => {
if (el.id === id) {
el.name = name;
el.phone = phone
}
return NewArr;
})
this.setState({
mobile: NewArr,
read:false
})
我正在尝试像这样更新,但我不知道如何找到 NewMobile[index] 索引。最有可能在过滤器中,但如何将其转移到外部不起作用
const newItem = {
id: id,
name: text,
phone: phone
}
let NewArray = this.state.mobile.filter(el => el.id === id);
const a = this.state.mobile.indexOf(NewArray);
NewArray = newItem;
const NewMobile = this.state.mobile;
NewMobile[a] = NewArray;
this.setState({
mobile: NewMobile
})
id
是否有,如果有,则不要添加新元素,如果没有,则添加saveMobile
,而不是单独使用每个参数。单独使用每个参数时,很可能会混淆顺序并通常会出错