Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 这是从React Native中的数组中删除项的正确方法吗?_Javascript_Android_Reactjs_React Native - Fatal编程技术网

Javascript 这是从React Native中的数组中删除项的正确方法吗?

Javascript 这是从React Native中的数组中删除项的正确方法吗?,javascript,android,reactjs,react-native,Javascript,Android,Reactjs,React Native,我在React Native中实现了一个待办事项列表,但由于某种原因,在我删除一个任务后,数组中的下一个任务将获取我删除的任务的一些值。我制作了一个状态数组的副本,并对其进行了更改,即console.log,以确保一切正常,然后使用该副本设置状态。我想这一定是国家的问题。下面是我的remove_任务函数的简化版本。我做错什么了吗 _removeTask = (tindex) => { /*removes a task in the tasks array*/ //make copy of

我在React Native中实现了一个待办事项列表,但由于某种原因,在我删除一个任务后,数组中的下一个任务将获取我删除的任务的一些值。我制作了一个状态数组的副本,并对其进行了更改,即console.log,以确保一切正常,然后使用该副本设置状态。我想这一定是国家的问题。下面是我的remove_任务函数的简化版本。我做错什么了吗

 _removeTask = (tindex) => {
/*removes a task in the tasks array*/
//make copy of state array
var tasks = [...this.state.Tasks];

var taskCount = 0;

tasks.splice(tIndex, 1);

//update the index of every quest
tasks.forEach(
  (value, index) => {
    value.tIndex = index;
    value.selected = false;
    value.isActiveDummyTask = false;
    value.isInEditMode = false;
    taskCount++;
  }
)
this.setState({ 
  Tasks: tasks,
  TCount: taskCount,
});

}

这是否回答了您的问题?否,因为正在js上正确编辑数组。但由于某些原因,它正在使用React本机状态。您是否在映射元素时设置了props键?密钥必须是唯一的。这不是一个好的做法,但请尝试将密钥设置为JSON.stringify(任务)。如果它解决了你的问题,你知道这是关键。大卫,我爱你。非常感谢你!它实际上解决了这个问题。我现在知道是钥匙出了问题!再次感谢你!你是个英雄。不,你是一个传奇!不,你是最好的。