更改对象数组中的状态

时间:2018-03-04 12:25:48

标签: reactjs

我很困惑。

如何更改对象数组中的特定元素?例如,我希望在id为1的对象中更改' isComplete'

state

1 个答案:

答案 0 :(得分:2)

这样的事吗?在这种情况下,您的新状态取决于旧状态,因此您必须使用setState的函数参数版本。

this.setState(prevState => {
   const updatedTasks = prevState.task.map(task => {
      return (task.id === 1 ? Object.assign({}, task, {isComplete: !task.isComplete}) : task)
   })
   return {task: updatedTasks}
})