const defaultTodos = id 1 text 学习React done false id 2 text 休息 done true id 3 text 吃饭 done false 假设我设置一个函数const arrsetArr=usestatedefaultTodos const const toggleDone = done = done=!done将done
你可以这样修改toggleDone函数:
const toggleDone = (id) => { setArr(arr.map(todo => { if (todo.id === id) { return { ...todo, done: !todo.done } } return todo; })) }
这个函数会接收一个id作为参数,然后使用map方法遍历arr数组,当找到对应id的todo时,通过spread syntax将done的值取反,并返回一个新的todo对象。其他的todo对象保持不变。最后使用setArr更新arr数组。
原文地址: http://www.cveoy.top/t/topic/ivsG 著作权归作者所有。请勿转载和采集!