Lzh on GitHub

列定义是具有以下选项的普通对象:

选项

id

id: string

列的唯一标识符。

列 ID 在以下情况下是可选的:

  • 当使用对象键访问器创建访问器列时。
  • 当列头定义为字符串时。

accessorKey

accessorKey?: string & typeof TData

用于从行对象中提取列值时使用的键。

accessorFn

accessorFn?: (originalRow: TData, index: number) => any

用于从每行中提取列值时使用的访问器函数。

columns

columns?: ColumnDef<TData>[]

组列中包含的子列定义。

header?:
  | string
  | ((props: {
      table: Table<TData>
      header: Header<TData>
      column: Column<TData>
    }) => unknown)

列要显示的标题。如果传入字符串,它可以用作列 ID 的默认值。如果传入函数,它将接收一个用于标题的 props 对象,并应返回渲染后的标题值(具体类型取决于所使用的适配器)。

footer?:
  | string
  | ((props: {
      table: Table<TData>
      header: Header<TData>
      column: Column<TData>
    }) => unknown)

列要显示的页脚。如果传入函数,它将接收一个用于页脚的 props 对象,并应返回渲染后的页脚值(具体类型取决于所使用的适配器)。

cell

cell?:
  | string
  | ((props: {
      table: Table<TData>
      row: Row<TData>
      column: Column<TData>
      cell: Cell<TData>
      getValue: () => any
      renderValue: () => any
    }) => unknown)

列中每行要显示的单元格。如果传入函数,它将接收一个用于单元格的 props 对象,并应返回渲染后的单元格值(具体类型取决于所使用的适配器)。

meta

meta?: ColumnMeta // This interface is extensible via declaration merging. See below!

与列关联的元数据。当列可用时,我们可以通过 column.columnDef.meta 在任何地方访问它。此类型是所有表的全局类型,可以像这样扩展:

import '@tanstack/react-table' // 或 vue, svelte, solid, qwik, etc.

declare module '@tanstack/react-table' {
  interface ColumnMeta<TData extends RowData, TValue> {
    foo: string
  }
}