Skip to content

fix(table): skip checkProps disabled rows on select all#4236

Open
dexterBo wants to merge 1 commit into
Tencent:developfrom
dexterBo:fix-table-select-all-disabled-check-props
Open

fix(table): skip checkProps disabled rows on select all#4236
dexterBo wants to merge 1 commit into
Tencent:developfrom
dexterBo:fix-table-select-all-disabled-check-props

Conversation

@dexterBo
Copy link
Copy Markdown
Contributor

🤔 这个 PR 的性质是?

  • 日常 bug 修复

🔗 相关 Issue

Fixes #3976

💡 需求背景和解决方案

Table 多选列的行 checkbox 已经会读取 checkProps.disabled,但表头全选计算可选行时只过滤了 column.disabled,导致点击全选时仍会把通过 checkProps.disabled 禁用的行加入 selectedRowKeys

本 PR 将全选可选行判断复用行选择单元格的禁用判断,确保 column.disabledcheckProps.disabled 行为一致,并补充回归测试。

📝 更新日志

  • fix(Table): 表格全选跳过通过 checkProps.disabled 禁用的行

☑️ 请求合并前的自查清单

  • pnpm exec vitest run packages/components/table/__tests__/row.events.test.tsx --testNamePattern "select all skips rows disabled by checkProps"
  • pnpm exec vitest run packages/components/table/__tests__/row.events.test.tsx
  • pnpm exec eslint packages/components/table/hooks/useRowSelect.tsx packages/components/table/__tests__/row.events.test.tsx --max-warnings 0
  • pnpm run lint:tsc

@tdesign-bot
Copy link
Copy Markdown
Collaborator

TDesign Component Site Preview Open

Component Preview
tdesign-react 完成
@tdesign-react/chat 完成

@pkg-pr-new
Copy link
Copy Markdown

pkg-pr-new Bot commented May 12, 2026

  • tdesign-react-demo

    npm i https://pkg.pr.new/Tencent/tdesign-react@4236
    
    npm i https://pkg.pr.new/Tencent/tdesign-react/@tdesign-react/chat@4236
    

commit: ac86c45

function isDisabled(row: Record<string, any>, rowIndex: number): boolean {
return isRowSelectedDisabled(selectColumn, row, rowIndex);
if (!selectColumn) return false;
return getRowSelectDisabledData({ row, rowIndex, col: selectColumn, colIndex: selectColumnIndex }).disabled;
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这个修复没有考虑「禁用项提前被选中(state 注入)」的情况,导致半选无法取消
issue 相关的完整修复已在另一个PR,近期会发布

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[table] 开启选中功能 点击 选中全部 会选中禁用选项,理论上不应该选中禁用选项

3 participants