如果我有一个对象todo
作为状态的一部分,并且该对象包含数组lists
,则在lists
内有对象,而在这些对象内还有另一个数组{{1 }}。如何更新ID {:poi098“的数组listItems
中的对象?
此处演示:https://stackblitz.com/edit/react-fjyb9g
listItems
答案 0 :(得分:2)
您可以将嵌套数组更新为
this.setState(prevState => ({
...prevState,
todo: {
...prevState.todo,
lists: prevState.todo.lists.map( list => ({
...list,
listItems: list.listItems.map( listItem => listItem.id === data.id ? data : listItem )
}))
}
}))
答案 1 :(得分:0)
我建议您阅读以下文章: https://reactjs.org/docs/update.html
import update from 'react-addons-update';
const newData = update(myData, {
x: {y: {z: {$set: 7}}},
a: {b: {$push: [9]}}
});