多选框翻页 多选的时候有bug,当选了第一页的数据,再选第二页的数据,第一页的数据selectedRows会被清空。
解决方案:把选中的数据手动存起来
nameSelectChange = (selectedRowKeys, newSelectedRows) => {
let oldRows = this.state.nameSelectedRows; //oldRows 是对象
// 加数据
newSelectedRows.length > 0 && newSelectedRows.map(
p=>{
if( oldRows[p.id] === undefined){
oldRows[p.id] = p;
}
}
);
// 删除数据时筛选key存在的数据
let newRows = {};
selectedRowKeys.map(
p=>{
newRows[p] = oldRows[p];
}
);
this.setState({
nameSelectedKeys: selectedRowKeys,
nameSelectedRows: newRows
}, ()=>{
let v = {
selectedRowKeys,
nameRows: Object.values(newRows) //把对象变为数组
};
//传到父组件保存
this.props.selectedNames(v);
});
};
我没使用过这个方法,后端配合加了通过ID查记录的接口获取的
更多方法请查看来源链接