antdesign table 的selective 应该是按照rowkey 去进行保存的, 方法 row-selection 的 onChange 事件中 第二个参数 是返回的当页选中的data 数据 跨页就不会有了。 那么如何拿到所有的数据,目前api 似乎是不太支持废话不多少
:row-selection="
selective
? {
selectedRowKeys: multipleSelection,
onChange: handleSelectionChange,
}
: null
"
handleSelectionChange(val,data) {
const {rowKey,selectionData:datas} = this;
data.forEach(item=>{
if(!datas[item[rowKey]]){
datas[item[rowKey]] = item;
}
})
for(let key in datas){
if(val.indexOf(key)<0){
delete datas[key];
}
}
this.selectionData =datas;
this.multipleSelection = val;
},
大概意思就是 每次选中拿到的data 都去用一个哈希对象去维护起来,确保每个rowkey 都是唯一的 然后 再去与所有id 进行比较 去掉 没有的。
antdesign-vue 真的十分十分十分十分 垃圾! 快跑.png