背景是要做个商品列表A,可搜索的,勾选之后的显示在列表B中,两表联动,在A中勾选和取消选择的行,在B中会对应显示和消失。在B中点击删除,所删除的行在A中需要取消选择。
刚开始我就直接把A选中的push到B的数据中,点击B删除的时候直接调A的toggleRowSelection,row用B表中的数据,这样可以不用循环A判断id是否与要删的一致再去toggleRowSelection。这样是可以的。
后来发现个问题,一旦我重新搜索,A表中数据变了,或者我根本没有修改搜索条件,只是重新请求了,再去点B的删除,就没有办法取消掉A的勾选。查了半天,有人说用nextTick,但是没起作用。
搞了半天还是得循环判断,row必须是A中的数据才行。
dele (row) {
this.$nextTick(() => {
//表A取消选择
this.aList.forEach(element => {
if (element.id == row.id) {
this.$refs.multipleTable.toggleRowSelection(element, false);
}
})
//表B删除数据
this.bList.forEach((element, i) => {
if (element.id== row.id) {
this.bList.splice(i, 1)
}
})
})
},