Javascript/react--.map工作不正常

Javascript/react--.map工作不正常,javascript,arrays,reactjs,setstate,Javascript,Arrays,Reactjs,Setstate,在react课程中,我们使用setState制作了一个简单的待办事项列表。我试图在onChange事件上获得布尔更改的值。我被卡住了 我有一个对象数组 数组定义: toDoData = [ { id: 1, task: "Do laundry", completed: false }, { id: 2, task: "Write essay",

在react课程中,我们使用setState制作了一个简单的待办事项列表。我试图在onChange事件上获得布尔更改的值。我被卡住了

我有一个对象数组

数组定义:

toDoData = [
    {
        id: 1,
        task: "Do laundry",
        completed: false
    },
    {
        id: 2,
        task: "Write essay",
        completed: false
    },
    {
        id: 3,
        task: "Do Homework",
        completed: true
    }

]
为了简单起见,我尝试映射整个数组,并创建一个新的数组,完成的属性与以前相反

 let updatedTodos = this.state.todos.map(todo => {
        todo.completed = !todo.completed
        return todo
      })
 
 console.log(updatedTodos)
当我打印到控制台时,completed的值没有改变。

尝试:

let updatedTodos = this.state.todos.map(todo => ({ ...todo, completed: !todo.completed }));
console.log(updatedTodos);

你能发布所有的组件代码吗?您的方法是正确的..您正在
map()
调用中变异嵌套对象。尝试
.map(todo=>({…todo,completed:!todo.completed}))
将创建原始对象的副本,并按预期更新
completed
属性。@pilchard成功了,谢谢