Javascript/react--.map工作不正常
在react课程中,我们使用setState制作了一个简单的待办事项列表。我试图在onChange事件上获得布尔更改的值。我被卡住了 我有一个对象数组 数组定义: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",
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成功了,谢谢