我正在尝试使用索引调用的删除功能。页面加载时,数据被检索并显示在表格上。我将对象转换为对象数组以将其显示在桌子上。 示例 - 我有 5 个数据。我的第一次删除成功删除了我想要的索引,例如 2。现在我有 4 个数据。我的第二次删除我尝试再次删除索引 2,它删除了索引 3 而不是 2。
const objtoarr = (data) => {
const test = data.map((item, index) => [
index + 1,
item.description,
<i className="bi bi-trash delete-icon" onClick={() => delete(index)}></i>
]);
return test
};
const delete = (index) => {
setdisplaydata((prevDetails) =>
prevDetails.filter((_, i) => i !== index)
);
setdata((prevDetails) =>
prevDetails.filter((_, i) => i !== index)
updateIndices();
};
const updateIndices = () => {
setdisplaydata((prevDetails) =>
prevDetails.map((row, index) => [
index + 1,
...row.slice(1),
])
);
};
您正在更新 prevDetails 吗?删除后?因为您正在设置数据,然后立即调用使用 prevDetails 的 udpateIndices