我面临一个奇怪的问题(至少对我来说),其中 JS Array 方法map()没有按照映射回调逻辑返回更新的数组。我有以下功能
1 handleChange (id){
2 this.setState((prevState)=>{
3 const todos = prevState.myTodos.map(item => {
4 if(item.id === id){
5 //console.log("ITEM.id is ",item.id,"id passed is ",id,"status is ",item.completed)
6 item.completed = !item.completed
7 }
8 //console.log("ITEM.id is ",item.id,"id passed was ",id,"new status is ",item.completed)
9 return item
10 })
11 return {myTodos : todos}
12 })
13 }
在此函数中,我正在更新 App 对象的状态。就在第 8 行返回项目之前,我可以记录输出并看到 item.completed 已更改,但是当回调返回项目对象时,它不会将更新的项目存储在todos变量中。
任何提示都可能有很大帮助。感谢期待
慕雪6442864
呼如林
相关分类