Lzh on GitHub

状态 (State)

行选择状态在表格中以以下形式存储:

export type RowSelectionState = Record<string, boolean>

export type RowSelectionTableState = {
  rowSelection: RowSelectionState
}

默认情况下,行选择状态使用每行的索引作为行标识符。你也可以通过向表格传入一个自定义的 getRowId 函数,使用自定义的唯一行 ID 来跟踪行选择状态。

表格选项 (Table Options)

enableRowSelection

enableRowSelection?: boolean | ((row: Row<TData>) => boolean)
  • 启用/禁用表格中所有行的行选择功能,或者
  • 一个函数,给定一行,返回是否为该行启用/禁用行选择

enableMultiRowSelection

enableMultiRowSelection?: boolean | ((row: Row<TData>) => boolean)
  • 启用/禁用表格中所有行的多行选择功能或者
  • 一个函数,给定一行,返回是否为该行的子行/孙子行启用/禁用多行选择

enableSubRowSelection

enableSubRowSelection?: boolean | ((row: Row<TData>) => boolean)

启用/禁用在选择父行时自动选择子行,或者一个函数,用于启用/禁用每行的自动子行选择。

(与展开或分组功能结合使用)

onRowSelectionChange

onRowSelectionChange?: OnChangeFn<RowSelectionState>

如果提供此函数,当 state.rowSelection 改变时,它将使用 updaterFn 调用。这会覆盖默认的内部状态管理,因此你需要完全或部分地在表格外部持久化状态更改

表格 API (Table API)

getToggleAllRowsSelectedHandler

getToggleAllRowsSelectedHandler: () => (event: unknown) => void

返回一个处理程序,可用于切换表格中所有行的选择状态

getToggleAllPageRowsSelectedHandler

getToggleAllPageRowsSelectedHandler: () => (event: unknown) => void

返回一个处理程序,可用于切换当前页面上所有行的选择状态

setRowSelection

setRowSelection: (updater: Updater<RowSelectionState>) => void

设置或更新 state.rowSelection 状态。

resetRowSelection

resetRowSelection: (defaultState?: boolean) => void

rowSelection 状态重置为 initialState.rowSelection,或者可以传递 true强制重置为默认的空白状态 {}

getIsAllRowsSelected

getIsAllRowsSelected: () => boolean

返回表格中所有行是否都已选中

getIsAllPageRowsSelected

getIsAllPageRowsSelected: () => boolean

返回当前页面上所有行是否都已选中

getIsSomeRowsSelected

getIsSomeRowsSelected: () => boolean

返回表格中 是否有部分行已选中

getIsSomePageRowsSelected

getIsSomePageRowsSelected: () => boolean

返回当前页面上是否有部分行已选中

toggleAllRowsSelected

toggleAllRowsSelected: (value: boolean) => void

选择/取消选择表格中的所有行

toggleAllPageRowsSelected

toggleAllPageRowsSelected: (value: boolean) => void

选择/取消选择 当前页面上的所有行

getPreSelectedRowModel

getPreSelectedRowModel: () => RowModel<TData>

返回未应用选择之前的行模型。

getSelectedRowModel

getSelectedRowModel: () => RowModel<TData>

返回已应用选择之后的行模型。

getFilteredSelectedRowModel

getFilteredSelectedRowModel: () => RowModel<TData>

返回已筛选并应用选择之后的行模型。

getGroupedSelectedRowModel

getGroupedSelectedRowModel: () => RowModel<TData>

返回已分组并应用选择之后的行模型。

行 API (Row API)

getIsSelected

getIsSelected: () => boolean

返回行是否已选中

getIsSomeSelected

getIsSomeSelected: () => boolean

返回行的部分子行是否已选中

getIsAllSubRowsSelected

getIsAllSubRowsSelected: () => boolean

返回行的所有子行是否都已选中

getCanSelect

getCanSelect: () => boolean

返回行是否可以被选中

getCanMultiSelect

getCanMultiSelect: () => boolean

返回行是否可以多选

getCanSelectSubRows

getCanSelectSubRows: () => boolean

返回当父行被选中时,行是否可以自动选择子行

toggleSelected

toggleSelected: (value?: boolean) => void

选择/取消选择该行。

getToggleSelectedHandler

getToggleSelectedHandler: () => (event: unknown) => void

返回一个处理程序,可用于切换行的选择状态