材料表允许禁用某些行,但是当用户然后按全选时,它将突出显示禁用的行。有什么方法可以让此功能忽略被禁用的行?
禁用行的代码:
options={{
selection: true,
selectionProps: rowData => ({
disabled: disableRow(rowData)
})
}}
使用全选来选择禁用行的图像示例:
答案 0 :(得分:1)
这是一个很明显的错误。
现在,您可以通过将onSelectionChange中禁用的行的tableData.checked设置为false来修复它。如果数据保存在this.state中,并且您要禁用所有行,请使用以下命令:
onSelectionChange={(rows) => this.setState({data: rows.map(row => ({
...row,
tableData:{
...row.tableData,
checked: false
}
}))})}
如果您具有类似disableRow
的功能,则可以使用它来设置各个行的选中属性。这样您就可以控制选择。
您应该打开一个问题来解决在材料表上选择的禁用行的问题,以便将来解决。
答案 1 :(得分:0)
这在我的情况下有效(不使用任何 setState
):
data={yourData.map(row => {
row.tableData = {...row.tableData, disabled: disableRow(row)};
return rowData;
})}
options={{
selectionProps: row => ({disabled: row.tableData.disabled})
}}