在使用获取接口数据后,跟之前的保存数据做比较,如果存在就设置isSelect为true,如果不存在就设置为false,代码如下 data && data.forEach((row) => { // console.log(initMap.get(row.id), "initMap.get(row.id)"); if (initMap.get(row.id)) { console.log("走了这222边"); row.isSelect = true; this.$refs.selectTableRef.toggleRowSelection(row, true); } else { console.log("走了这一边"); } });, 这样,并不能选中,请帮我找出原因并且解决
时间: 2024-02-05 19:02:33 浏览: 47
MybatisPlus中插入数据后获取该对象主键值的实现
5星 · 资源好评率100%
根据你提供的代码,我看到在`if (initMap.get(row.id))`的条件下,会将`row.isSelect`设置为`true`,并且使用`this.$refs.selectTableRef.toggleRowSelection(row, true)`来选中这一行数据。但是,在`else`条件下,没有进行任何的操作,所以即使在这里将`row.isSelect`设置为`false`,也不会选中对应的行。
你可以使用`this.$refs.selectTableRef.toggleRowSelection(row, false)`来取消选中这一行数据,这样就可以保证如果数据不存在,对应的行不会被选中。修改后的代码如下所示:
```
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);
}
});
```
这样修改后,就可以根据数据是否存在来选中或取消选中对应的行了。
阅读全文