【发布时间】:2021-10-07 20:15:55
【问题描述】:
我正在用 react-native 制作一个待办事项应用程序。我做了一个删除按下任务的功能,但是当我按下时,它会删除列表中的第一个项目,而不是我按下的那个。 这是我使用的代码:
let id = 0;
const [task, setTask] = useState("");
const [taskList, setTaskList] = useState([
{ name: "Add your first task", id: id++ },
]);
const handleTask = (e) => {
e.preventDefault();
setTaskList([...taskList, { name: task, id: id++ }]);
setTask("");
};
function completeTask(index) {
let itemsCopy = [...taskList];
itemsCopy.splice(index, 1);
setTaskList(itemsCopy);
}
{taskList.map((taskList, index) => {
return (
<View style={styles.wrapper}>
<View style={styles.text}>
<TouchableOpacity key={index} onPress={completeTask}>
<Text> {taskList.name} </Text>
</TouchableOpacity>
</View>
</View>
);
})}
【问题讨论】:
-
你能调试一下吗?按下时index的值是多少?
标签: javascript arrays reactjs react-native