在表格初始化的时候,调用this.$refs.selectTableRef.toggleRowSelection(row, false); 每次都会默认触发selection-change事件,请问怎么解决
时间: 2024-02-21 16:59:44 浏览: 24
`this.$refs.selectTableRef.toggleRowSelection(row, false)`会触发`selection-change`事件,这是因为当你手动调用`toggleRowSelection`方法时,它会触发表格的`select`事件,而`select`事件又会触发`selection-change`事件。
为了解决这个问题,你可以在调用`toggleRowSelection`方法之前,先解除`selection-change`事件的绑定,然后再调用完毕之后重新绑定`selection-change`事件。代码如下所示:
```
// 解除 selection-change 事件的绑定
this.$refs.selectTableRef.$off('selection-change');
data &&
data.forEach((row) => {
if (initMap.get(row.id)) {
console.log("走了这222边");
row.isSelect = true;
this.$refs.selectTableRef.toggleRowSelection(row, true);
} else {
console.log("走了这一边");
row.isSelect = false;
this.$refs.selectTableRef.toggleRowSelection(row, false);
}
});
// 重新绑定 selection-change 事件
this.$refs.selectTableRef.$on('selection-change', (selection) => {
console.log(selection);
});
```
这样就可以避免每次调用`toggleRowSelection`方法都触发`selection-change`事件的问题了。