Javascript / react - .map 无法正常工作

Posted

技术标签:

【中文标题】Javascript / react - .map 无法正常工作【英文标题】:Javascript / react -- .map is not working properly 【发布时间】:2021-03-17 15:15:17 【问题描述】:

参加反应课程,我们正在使用 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)

当我打印到控制台时,完成的值没有改变。

【问题讨论】:

能贴出所有的组件代码吗?你的方法是正确的.. 您正在更改 map() 调用中的嵌套对象。尝试.map(todo => (...todo, completed: !todo.completed));,它将创建原始对象的副本并按预期更新completed 属性。 @pilchard 成功了,谢谢 【参考方案1】:

试试:

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

【讨论】:

以上是关于Javascript / react - .map 无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

javascript React map이차원배열및객체로표시(array and object)

JavaScript(基于react)

在开始React之前,你需要学好这些JavaScript

React:快速上手——列表渲染

列表和键

react入门-----(jsx语法,在react中获取真实的dom节点)