如何处理Element UI Table组件中selection-change事件,以避免每次触发时累加上一次选中的值?
时间: 2024-12-21 21:22:33 浏览: 7
在Element UI的Table组件中,如果你想避免`selection-change`事件每次触发时都累计上一次选中的值,你需要在处理这个事件时手动管理已选择的数据。这里是一个基本的例子:
首先,在data属性中维护一个空数组来保存选中的项,假设它叫`selectedItems`。
```html
<el-table :data="tableData" @selection-change="handleSelectionChange">
<!-- ... -->
</el-table>
<script>
export default {
data() {
return {
tableData: [], // 表格数据
selectedItems: [] // 初始化选中项数组
};
},
methods: {
handleSelectionChange(selected) {
this.selectedItems = []; // 每次清空已选中的数组
if (Array.isArray(selected)) { // 如果是数组操作
selected.forEach(item => {
if (item) {
this.selectedItems.push(item); // 将新的选中项添加到数组
}
});
} else if (selected) { // 如果单选模式,处理单独的选中项
this.selectedItems = [selected];
}
}
}
};
</script>
```
这样,每当`selection-change`事件触发时,`selectedItems`数组都会被清空,然后只包含当前选中的项。如果需要在状态改变后做进一步的操作,可以在`handleSelectionChange`方法里添加对应逻辑。
阅读全文