ElementUI 组件排序后删除按钮随机删除元素,如何排查和解决?
接手别人的前端代码,发现一个奇怪的问题,用的elementUI组件,排序后点击删除按钮会随机删除,但是打印传入的下标发现又是正确的,只剩一个元素时可以正常删除,可能有哪些原因?删除函数
async onDelDtlGood(rowIndex) {
console.log(rowIndex);
this.addForm.dtlGoods.splice(rowIndex, 1);
},
排序函数
customSort(a, b) {
const aCode = a.goodsCode;
const bCode = b.goodsCode;
if (aCode < bCode) {
return -1;
}
if (aCode > bCode) {
return 1;
}
return 0;
},
删除按钮
<el-table-column lable="操作" width="120">
<template slot-scope="scope">
<el-button type="danger" @click="onDelDtlGood(scope.$index)">
删除
</el-button>
</template>
</el-table-column>
尝试了防止事件冒泡,重写排序函数,去除删除函数的异步修饰符,对this.addForm.dtlGoods.splice(rowIndex, 1) 加await,但是都不起作用
回复
1个回答
test
2024-06-29
并不是随机删除,而是index是实时的变化,不是你打印的时候的顺序. 只剩下一个元素时已经无法变了,自然可以正常删
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容