antd官方组件的onChange方法在分页重新加载数据的时候,没有清空selectedRowKeys,但是清空了selectedRowKeys,解决办法也很简单,不用onchange方法操作selectedRowKeys,用onselect和onselectAll来修改selectedRowKeys,
onSelectChange(selectedRowKeys, selectedRows) {
console.log('select', this.selectedRowKeys, this.selectedRowKeys)
this.selectedRowKeys = selectedRowKeys
// this.selectedRows = selectedRows //不用onchange操作
},
用onselect来操作
onSelect(record, selected, selectedRows, nativeEvent) {
if (selected) {
this.selectedRows.push(record)
}else{
const delIndex = this.selectedRows.findIndex((val) => {
return val.id === record.id
})
this.selectedRows.splice(delIndex, 1)
}
},
},
onSelectAll: (selected, selectedRows, changeRows) => {
if (selected) {
this.selectedRows = this.selectedRows.concat(changeRows)
}
if (!selected) {
let selectedRows = JSON.parse(JSON.stringify(this.selectedRows))
const delIndex = []
selectedRows.forEach((item, index) => {
changeRows.forEach((val, itemIndex) => {
if (item.id === val.id) {
delIndex.push(index)
}
})
})
delIndex.forEach((item) => {
delete selectedRows[item]
})
selectedRows = selectedRows.filter((item) => {
return item !== undefined
})
this.selectedRows = selectedRows
}
},