接手别人的前端代码,发现一个奇怪的问题,用的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,但是都不起作用
并不是随机删除,而是index是实时的变化,不是你打印的时候的顺序. 只剩下一个元素时已经无法变了,自然可以正常删