AntD,Table用rowClassName控制行的背景色,包括选中行的背景色,选中行的index在onClick方法设置到useState。数据很多的情况下,tableRowClassName方法会执行多次,导致选择行时很慢
<Table dataSource={dataSource} columns={columns} size="small" bordered
loading={viewForm.loading} pagination={false} rowClassName={tableRowClassName} scroll={{ x: 1300, y: maxHeight}}
onRow={(record, rowIndex) => ({
onClick: () => onRowClick(record, rowIndex),
onDoubleClick: () => getoPage(2, rowData),
})}/>
const tableRowClassName = (record: any, index: number) => {
console.info("tableRowClassName");
if (viewForm.rowIndex === index) {
return 'selected-row';
}
if (index % 2 === 1) {
return 'light-blue-background';
}
if (record.StpKbn == 1) {
return ' stop-distinguish-row';
}
if (record.SaihenCoNamUpdKbn == 1) {
return ' disabled-distinguish-row';
}
return "";
}
有什么方法在选择行时,变快一点吗?
1.可以采用操作dom手段来处理
2.通过 virtual 开启虚拟滚动 只会重新渲染可视区域内的行
3.分页也是一种选择