【发布时间】:2021-08-30 22:14:59
【问题描述】:
我有两个函数,其中一个在数组中添加一个项目,另一个使用 React JS(钩子)从该数组中删除。[两者都是单击事件的处理程序]。
我所拥有的工作不正确。
``id`` 来自 ``contact.length`` 我用``contacts.splice(id, 1)`` 删除了它。
我不知道为什么会出现这个问题。
它不会删除将被单击的内容,而是随机删除的内容。
function handleAddRecord(nameValue, phoneValue) {
setContacts([...contacts , {
id : contacts.length,
name : nameValue,
phone : phoneValue
}])
}
function handleDelete(id) {
console.log("manager", id);
const newContacts = contacts.splice([id],1);
setContacts([...newContacts]);
}
【问题讨论】:
-
你想从数组中删除一个特定的值吗?如果是,则使用 array.indexOf() 然后使用 array.splice()
-
请在调用handleDelete函数的地方添加代码
-
我觉得应该是
contacts.splice(id - 1, 1) -
@Mr_Green 不可能,因为它只是删除了最后一个,所以他可能只使用 .pop()
-
@Sanmeet 嗯,我也这么认为,但再次检查似乎并非如此。我认为以下答案是正确的,但 id 应该是
id - 1, IMO。
标签: javascript arrays reactjs splice