如何获取设置isRowSelectable属性后可选择的表格行总数量
统计表格可选中行数量的解决方案
注意:你当前的
isRowSelectable={() => Math.random() > 0.5}写法存在逻辑缺陷:该函数每次被表格组件调用时都会生成新的随机值,行是否可选的状态会随每次渲染动态变化,既无法稳定统计数量,也会导致行选中态错乱,建议先固化可选状态再做统计。
推荐实现方案
- 拿到表格原始数据源时,提前预计算每一行的可选状态,写入行数据的自定义字段固定下来:
const processedTableData = originalData.map(row => { return { ...row, // 预计算可选状态,后续不会再变动 _isSelectable: Math.random() > 0.5 } })
- 表格的
isRowSelectable属性直接读取预存的标记:isRowSelectable={(row) => row._isSelectable} - 统计可选中行总数时直接过滤处理后的数据源即可:
const selectableRowCount = processedTableData.filter(row => row._isSelectable).length
备选方案(仅适用于非随机的固定判断逻辑)
如果你的isRowSelectable判断逻辑是固定的(比如根据行的业务字段判断,不是随机生成),可以直接复用相同逻辑过滤原始数据源统计:const selectableRowCount = originalData.filter(row => /* 此处写和isRowSelectable完全一致的判断逻辑 */).length
该方案不适用于你当前的随机判断场景,两次随机运算的结果不会完全匹配,统计值和表格实际可选行无法对应。
内容的提问来源于stack exchange,提问作者Nazar
相关产品推荐
相关产品推荐

