reactjs - 从数组中删除选定的行
问题描述
在这里我想通过按下并选择 DeleteRow 按钮来清除这些行,问题是如果我从列表顶部选择行,它们将毫无问题地被删除,但如果这些行是从选择向下到顶部,则选择行无法删除。
handleMultipleDelete = () =>{
const arr=this.state.selectRowList;
const product = this.state.productList;
for (let i=arr.length-1; i>=0; i-- ){
product.splice(arr[i], 1);
}
this.setState({
productList: product,
selectRowList: [],
});
}
我的代码在这里
解决方案
您只需要在删除之前对 arr 进行排序,因为它们是数组的索引。
这是更新的功能
handleMultipleDelete = () => {
const arr = this.state.selectRowList;
const product = this.state.productList;
arr.sort(function(a, b) {
return a - b;
});
for (let i = arr.length - 1; i >= 0; i--) {
product.splice(arr[i], 1);
}
this.setState({
productList: product,
selectRowList: []
});
};
这是更新的 fork。
推荐阅读
- reactjs - 截取 React 页面的建议方法
- mysql - 如何优化作为 2 个非常相似但聚合不同的查询的连接的查询
- gitlab-ci - systemd vs gitlab cicd
- javascript - 异步函数案例
- ansible - Ansible endfor 不结束循环
- python - 在 Python 中使用 SymPy 求解方程
- javascript - 从下拉列表中选择特定国家/地区时,如何在屏幕上显示来自 data.json 文件的所选国家/地区详细信息
- html - 如何在语义上将两行(跨两行)合二为一?
- vue.js - 一起使用 fetch 和 asyncData
- dynamics-crm - Dynamics 365 CE On Premises,异步服务因与数据库中未找到的数据中心对象相关的 SQL 异常而崩溃