Core
The core API provides fundamental table functionality and configuration options. These properties and methods are always available on the table instance, regardless of which features are enabled.
CoreInstance
The CoreInstance interface defines the basic properties and methods available on every table instance returned by useReactTable.
| Prop | Type |
|---|---|
Returns all columns in the table in their normalized and nested hierarchy. | () => Column< |
Returns all columns in the table flattened to a single level. | () => Column< |
Returns all leaf-node columns in the table flattened to a single level. This
does not include parent columns. | () => Column< |
Returns a single column by its ID. | ( |
Returns the core row model before any processing has been applied. | () => RowModel<TData> |
Returns the row with the given ID. | ( |
Returns the final model after all processing from other used features has been
applied. This is the row model that is most commonly used for rendering. | () => RowModel<TData> |
Call this function to get the table's current state. It's recommended to use
this function and its state, especially when managing the table state manually.
It is the exact same state used internally by the table for every feature and
function it provides. | () => TableState |
This is the resolved initial state of the table. | TableState |
A read-only reference to the table's current options. | RequiredKeys< |
Call this function to reset the table state to the initial state. | () => void |
This function can be used to provide new table options. | ( |
Call this function to update the table state. | ( |
Use this function to update the table options. | ( |
Type
() => Column<
TData,
unknown,
ColumnMeta
>[]
Description
Returns all columns in the table in their normalized and nested hierarchy.
Type
() => Column<
TData,
unknown,
ColumnMeta
>[]
Description
Returns all columns in the table flattened to a single level.
Type
() => Column<
TData,
unknown,
ColumnMeta
>[]
Description
Returns all leaf-node columns in the table flattened to a single level. This
does not include parent columns.
Type
(
columnId: string,
) => Column<
TData,
unknown,
ColumnMeta
>
Description
Returns a single column by its ID.
Type
() => RowModel<TData>
Description
Returns the core row model before any processing has been applied.
Type
(
id: string,
searchAll?: boolean,
) => Row<TData>
Description
Returns the row with the given ID.
Type
() => RowModel<TData>
Description
Returns the final model after all processing from other used features has been
applied. This is the row model that is most commonly used for rendering.
Type
() => TableState
Description
Call this function to get the table's current state. It's recommended to use
this function and its state, especially when managing the table state manually.
It is the exact same state used internally by the table for every feature and
function it provides.
Type
TableStateDescription
This is the resolved initial state of the table.
Type
RequiredKeys<
TableOptionsResolved,
'state'
>
Description
A read-only reference to the table's current options.
Type
() => void
Description
Call this function to reset the table state to the initial state.
Type
(
newOptions: Updater<
TableOptionsResolved<TData>
>,
) => void
Description
This function can be used to provide new table options.
Type
(
updater: Updater<TableState>,
) => void
Description
Call this function to update the table state.
Type
(
options: Partial<
TableOptionsResolved<TData>
>,
) => void
Description
Use this function to update the table options.
TableOptions
The TableOptions interface defines the configuration options you pass to useReactTable to create and configure a table instance.
| Prop | Type |
|---|---|
Record | |
Set this option to override any of the autoReset... feature options. | boolean |
Enable this setting to automatically reset the expanded state of the table when
expanding state changes. | boolean |
If set to true, pagination will be reset to the first page when page-altering
state changes e.g.,data is updated, filters change, grouping changes, etc. | boolean |
Enables or disables right-to-left support for resizing the column. defaults to
'ltr'. | 'ltr' | 'rtl' |
Determines when the columnSizing state is updated. onChange updates the state
when the user is dragging the resize handle. onEnd updates the state when the
user releases the resize handle. | | 'onChange' |
The array of column defs to use for the table. | ColumnDef[] |
The data for the table to display. This array should match the type you
provided to table.setRowType<...>. Columns can access this data via
string/index or a functional accessor. When the data option changes
reference, the table will reprocess the data. | Array<TData> |
Set this option to true to output all debugging information to the console. | boolean |
Set this option to true to output column debugging information to the console. | boolean |
Set this option to true to output header debugging information to the console. | boolean |
Set this option to true to output row debugging information to the console. | boolean |
Set this option to true to output table debugging information to the console. | boolean |
Default column options to use for all column defs supplied to the table. | Partial<ColumnDef> |
Enables/disables column filtering for all columns. | boolean |
Enables/disables column pinning for the table. Defaults to true. | boolean |
Enables or disables column resizing for the column. | boolean |
Enable/disable expanding for all rows. | boolean |
Enables/disables all filtering for the table. | boolean |
Enables/disables global filtering for all columns. | boolean |
Enables/disables grouping for the table. | boolean |
boolean | |
Enables/disables the ability to remove multi-sorts | boolean |
- Enables/disables multiple row selection for all rows in the table OR - A function that given a row, returns whether to enable/disable multiple row selection for that row's children/grandchildren | | boolean |
Enables/Disables multi-sorting for the table. | boolean |
Enables/disables all pinning for the table. Defaults to true. | boolean |
Enables/disables row pinning for the table. Defaults to true. | | boolean |
- Enables/disables row selection for all rows in the table OR - A function that given a row, returns whether to enable/disable row selection for that row | | boolean |
Enables/Disables sorting for the table. | boolean |
Enables/Disables the ability to remove sorting for the table. - If true then changing sort order will circle like: 'none' -> 'desc' ->
'asc' -> 'none' -> ... - If false then changing sort order will circle like:
'none' -> 'desc' -> 'asc' -> 'desc' -> 'asc' -> ... | boolean |
Enables/disables automatic sub-row selection when a parent row is selected, or
a function that enables/disables automatic sub-row selection for each row. (Use
in combination with expanding or grouping features) | | boolean |
Record | |
By default, filtering is done from parent rows down (so if a parent row is
filtered out, all of its children will be filtered out as well). Setting this
option to true will cause filtering to be done from leaf rows up (which means
parent rows will be included so long as one of their child or grand-child rows
is also included). | boolean |
If provided, this function will be called with the column and should return
true or false to indicate whether this column should be used for global
filtering.This is useful if the column can contain data that is not string or number
(i.e. undefined). | ( |
This required option is a factory for a function that computes and returns the
core row model for the table. | ( |
This function is responsible for returning the expanded row model. If this
function is not provided, the table will not expand rows. You can use the
default exported getExpandedRowModel function to get the expanded row model
or implement your own. | ( |
( | |
| ( |
( | |
If provided, this function is called once per table and should return a
new function which will calculate and return the row model for the table
when it's filtered. - For server-side filtering, this function is unnecessary
and can be ignored since the server should already return the filtered row
model. - For client-side filtering, this function is required. A default
implementation is provided via any table adapter's { getFilteredRowModel }
export. | ( |
Returns the row model after grouping has taken place, but no further. | ( |
If provided, allows you to override the default behavior of determining whether
a row is currently expanded. | ( |
Returns the row model after pagination has taken place, but no further. Pagination columns are automatically reordered by default to the start of the columns list. If you would rather remove them or leave them as-is, set the appropriate mode here. | ( |
If provided, allows you to override the default behavior of determining whether
a row can be expanded. | ( |
This optional function is used to derive a unique ID for any given row. If not
provided the rows index is used (nested rows join together with . using their
grandparents' index e.g.,index.index.index). If you need to identify
individual rows that are originating from any server-side operations, it's
suggested you use this function to return an ID that makes sense regardless of
network IO/ambiguity e.g., a userId, taskId, database ID field, etc. | ( |
getRowId: row => row.userI | |
This function is used to retrieve the sorted row model. If using server-side
sorting, this function is not required. To use client-side sorting, pass the
exported getSortedRowModel() from your adapter to your table or implement
your own. | ( |
This optional function is used to access the sub rows for any given row. If you
are using nested rows, you will need to use this function to return the sub
rows object (or undefined) from the row. | ( |
getSubRows: row => row.subRow | |
The filter function to use for global filtering. - A string referencing a built-in filter function- A string that references a custom filter functions provided via the
tableOptions.filterFns option - A custom filter function | FilterFnOption<TData> |
Grouping columns are automatically reordered by default to the start of the
columns list. If you would rather remove them or leave them as-is, set the
appropriate mode here. | | false |
Include child rows when pinning parent. | boolean |
Include parent rows when pinning child. | boolean |
Use this option to optionally pass initial state to the table. This state will
be used when resetting various table states either automatically by the table
(e.g., options.autoResetPageIndex) or via functions like
table.resetRowSelection(). Most reset functions allow you to optionally pass a
flag to reset to a blank/default state instead of the initial state.Table state will not be reset when this object changes, which also means that the initial state object does not need to be stable. | InitialTableState |
Pass a custom function that will be used to determine if a multi-sort event
should be triggered. It is passed the event from the sort toggle handler and
should return true if the event should trigger a multi-sort. | ( |
When false, pinned rows will not be visible if they are filtered or paginated
out of the table. When true, pinned rows will always be visible regardless of
filtering or pagination. Defaults to true. | boolean |
Enables manual row expansion. If this is set to true, getExpandedRowModel
will not be used to expand rows and you would be expected to perform the
expansion in your own data model. This is useful if you are doing server-side
expansion. | boolean |
Disables the getFilteredRowModel from being used to filter data. This may be
useful if your table needs to dynamically support both client-side and
server-side filtering. | boolean |
Enables manual grouping. If this option is set to true, the table will not
automatically group rows using getGroupedRowModel() and instead will expect
you to manually group the rows before passing them to the table. This is useful
if you are doing server-side grouping and aggregation. | boolean |
Enables manual pagination. If this option is set to true, the table will not
automatically paginate rows using getPaginationRowModel() and instead will
expect you to manually paginate the rows before passing them to the table. This
is useful if you are doing server-side pagination and aggregation. | boolean |
Enables manual sorting for the table. If this is true, you will be expected
to sort your data before it is passed to the table. This is useful if you are
doing server-side sorting. | boolean |
By default, filtering is done for all rows (max depth of 100), no matter if
they are root level parent rows or the child leaf rows of a parent row. Setting
this option to 0 will cause filtering to only be applied to the root level
parent rows, with all sub-rows remaining unfiltered. Similarly, setting this
option to 1 will cause filtering to only be applied to child leaf rows 1
level deep, and so on.This is useful for situations where you want a row's entire child hierarchy to be visible regardless of the applied filter. | number |
Set a maximum number of columns that can be multi-sorted. | number |
This option is used to optionally implement the merging of table options. | ( |
You can pass any object to options.meta and access it anywhere the table is
available via table.options.meta. | TableMeta<TData> |
If provided, this function will be called with an updaterFn when
state.columnFilters changes. This overrides the default internal state
management, so you will need to persist the state change either fully or
partially outside the table. | ( |
If provided, this function will be called with an updaterFn when
state.columnOrder changes. This overrides the default internal state
management, so you will need to persist the state change either fully or
partially outside the table. | ( |
If provided, this function will be called with an updaterFn when
state.columnPinning changes. This overrides the default internal state
management, so you will also need to supply state.columnPinning from your own
managed state. | ( |
If provided, this function will be called with an updaterFn when
state.columnSizing changes. This overrides the default internal state
management, so you will also need to supply state.columnSizing from your own
managed state. | ( |
If provided, this function will be called with an updaterFn when
state.columnSizingInfo changes. This overrides the default internal state
management, so you will also need to supply state.columnSizingInfo from your
own managed state. | ( |
If provided, this function will be called with an updaterFn when
state.columnVisibility changes. This overrides the default internal state
management, so you will need to persist the state change either fully or
partially outside of the table. | OnChangeFn<VisibilityState> |
This function is called when the expanded table state changes. If a function
is provided, you will be responsible for managing this state on your own. To
pass the managed state back to the table, use the tableOptions.state.expanded
option. | OnChangeFn<ExpandedState> |
If provided, this function will be called with an updaterFn when
state.globalFilter changes. This overrides the default internal state
management, so you will need to persist the state change either fully or
partially outside the table. | ( |
If this function is provided, it will be called when the grouping state changes
and you will be expected to manage the state yourself. You can pass the managed
state back to the table via the tableOptions.state.grouping option. | ( |
If this function is provided, it will be called when the pagination state
changes and you will be expected to manage the state yourself. You can pass the
managed state back to the table via the tableOptions.state.pagination option. | ( |
If provided, this function will be called with an updaterFn when
state.rowPinning changes. This overrides the default internal state
management, so you will also need to supply state.rowPinning from your own
managed state. | ( |
If provided, this function will be called with an updaterFn when
state.rowSelection changes. This overrides the default internal state
management, so you will need to persist the state change either fully or
partially outside of the table. | ( |
If provided, this function will be called with an updaterFn when
state.sorting changes. This overrides the default internal state management,
so you will need to persist the state change either fully or partially outside
of the table. | ( |
The onStateChange option can be used to optionally listen to state changes
within the table. | ( |
When manually controlling pagination, you should supply a total pageCount
value to the table if you know it. If you do not know how many pages there are,
you can set this to -1. | number |
If true expanded rows will be paginated along with the rest of the table
(which means expanded rows may span multiple pages). If false expanded rows
will not be considered for pagination (which means expanded rows will always
render on their parents page. This also means more rows will be rendered than
the set page size) | boolean |
Value used when the desired value is not found in the data. | any |
If true, all sorts will default to descending as their first toggle state. | boolean |
Record< | |
The state option can be used to optionally _control_ part or all of the table
state. The state you pass here will merge with and overwrite the internal
automatically-managed state to produce the final state for the table. You can
also listen to state changes via the onStateChange option. > Note: Any state
passed in here will override both the internal state and any other
initialState you provide. | Partial<TableState> |
Type
RecordDescription
Type
booleanDescription
Set this option to override any of the
autoReset... feature options.Type
booleanDescription
Enable this setting to automatically reset the expanded state of the table when
expanding state changes.
Type
booleanDescription
If set to
true, pagination will be reset to the first page when page-altering
state changes e.g.,data is updated, filters change, grouping changes, etc.Type
'ltr' | 'rtl'
Description
Enables or disables right-to-left support for resizing the column. defaults to
'ltr'.
Type
| 'onChange'
| 'onEnd'
Description
Determines when the columnSizing state is updated.
onChange updates the state
when the user is dragging the resize handle. onEnd updates the state when the
user releases the resize handle.Type
ColumnDef[]
Description
The array of column defs to use for the table.
Type
Array<TData>
Description
The data for the table to display. This array should match the type you
provided to
table.setRowType<...>. Columns can access this data via
string/index or a functional accessor. When the data option changes
reference, the table will reprocess the data.Type
booleanDescription
Set this option to
true to output all debugging information to the console.Type
booleanDescription
Set this option to
true to output column debugging information to the console.Type
booleanDescription
Set this option to
true to output header debugging information to the console.Type
booleanDescription
Set this option to
true to output row debugging information to the console.Type
booleanDescription
Set this option to
true to output table debugging information to the console.Type
Partial<ColumnDef>
Description
Default column options to use for all column defs supplied to the table.
Type
booleanDescription
Enables/disables
column filtering for all columns.Type
booleanDescription
Enables/disables column pinning for the table. Defaults to
true.Type
booleanDescription
Enables or disables column resizing for the column.
Type
booleanDescription
Enable/disable expanding for all rows.
Type
booleanDescription
Enables/disables all filtering for the table.
Type
booleanDescription
Enables/disables global filtering for all columns.
Type
booleanDescription
Enables/disables grouping for the table.
Type
booleanType
booleanDescription
Enables/disables the ability to remove multi-sorts
Type
| boolean
| ((
row: Row<TData>,
) => boolean)
Description
- Enables/disables multiple row selection for all rows in the table OR
- A function that given a row, returns whether to enable/disable multiple row selection for that row's children/grandchildren
- A function that given a row, returns whether to enable/disable multiple row selection for that row's children/grandchildren
Type
booleanDescription
Enables/Disables multi-sorting for the table.
Type
booleanDescription
Enables/disables all pinning for the table. Defaults to
true.Type
| boolean
| ((
row: Row<TData>,
) => boolean)
Description
Enables/disables row pinning for the table. Defaults to
true.Type
| boolean
| ((
row: Row<TData>,
) => boolean)
Description
- Enables/disables row selection for all rows in the table OR
- A function that given a row, returns whether to enable/disable row selection for that row
- A function that given a row, returns whether to enable/disable row selection for that row
Type
booleanDescription
Enables/Disables sorting for the table.
Type
booleanDescription
Enables/Disables the ability to remove sorting for the table.
- If
- If
true then changing sort order will circle like: 'none' -> 'desc' ->
'asc' -> 'none' -> ... - If false then changing sort order will circle like:
'none' -> 'desc' -> 'asc' -> 'desc' -> 'asc' -> ...Type
| boolean
| ((
row: Row<TData>,
) => boolean)
Description
Enables/disables automatic sub-row selection when a parent row is selected, or
a function that enables/disables automatic sub-row selection for each row. (Use
in combination with expanding or grouping features)
Type
RecordDescription
Type
booleanDescription
By default, filtering is done from parent rows down (so if a parent row is
filtered out, all of its children will be filtered out as well). Setting this
option to
true will cause filtering to be done from leaf rows up (which means
parent rows will be included so long as one of their child or grand-child rows
is also included).Type
(
column: Column<
TData,
unknown
>,
) => boolean
Description
If provided, this function will be called with the column and should return
This is useful if the column can contain data that is not
true or false to indicate whether this column should be used for global
filtering.This is useful if the column can contain data that is not
string or number
(i.e. undefined).Type
(
table: TableInstance<any>,
) => () => RowModel<any>
Description
This required option is a factory for a function that computes and returns the
core row model for the table.
Type
(
table: TableInstance<any>,
) => () => {
flatRows: Row[]
rows: Row[]
rowsById: Record
}
Description
This function is responsible for returning the expanded row model. If this
function is not provided, the table will not expand rows. You can use the
default exported
getExpandedRowModel function to get the expanded row model
or implement your own.Type
(
table: TableInstance<TData>,
columnId: string,
) => () => [number, number]
Type
(
table: TableInstance<TData>,
columnId: string,
) => () => {
flatRows: Row[]
rows: Row[]
rowsById: Record
}
Type
(
table: TableInstance<TData>,
columnId: string,
) => () => Map<any, number>
Type
(
table: TableInstance<TData>,
) => () => {
flatRows: Row[]
rows: Row[]
rowsById: Record
}
Description
If provided, this function is called once per table and should return a
new function which will calculate and return the row model for the table
when it's filtered. - For server-side filtering, this function is unnecessary
and can be ignored since the server should already return the filtered row
model. - For client-side filtering, this function is required. A default
implementation is provided via any table adapter's
{ getFilteredRowModel }
export.Type
(
table: TableInstance<any>,
) => () => {
flatRows: Row[]
rows: Row[]
rowsById: Record
}
Description
Returns the row model after grouping has taken place, but no further.
Type
(
row: Row<TData>,
) => boolean
Description
If provided, allows you to override the default behavior of determining whether
a row is currently expanded.
Type
(
table: TableInstance<any>,
) => () => {
flatRows: Row[]
rows: Row[]
rowsById: Record
}
Description
Returns the row model after pagination has taken place, but no further.
Pagination columns are automatically reordered by default to the start of the columns list. If you would rather remove them or leave them as-is, set the appropriate mode here.
Pagination columns are automatically reordered by default to the start of the columns list. If you would rather remove them or leave them as-is, set the appropriate mode here.
Type
(
row: Row<TData>,
) => boolean
Description
If provided, allows you to override the default behavior of determining whether
a row can be expanded.
Type
(
originalRow: TData,
index: number,
parent: Row<TData>,
) => string
Description
This optional function is used to derive a unique ID for any given row. If not
provided the rows index is used (nested rows join together with
. using their
grandparents' index e.g.,index.index.index). If you need to identify
individual rows that are originating from any server-side operations, it's
suggested you use this function to return an ID that makes sense regardless of
network IO/ambiguity e.g., a userId, taskId, database ID field, etc.getRowId: row => row.userI
Type
(
table: TableInstance<any>,
) => () => {
flatRows: Row[]
rows: Row[]
rowsById: Record
}
Description
This function is used to retrieve the sorted row model. If using server-side
sorting, this function is not required. To use client-side sorting, pass the
exported
getSortedRowModel() from your adapter to your table or implement
your own.Type
(
originalRow: TData,
index: number,
) => Array<TData>
Description
This optional function is used to access the sub rows for any given row. If you
are using nested rows, you will need to use this function to return the sub
rows object (or undefined) from the row.
getSubRows: row => row.subRow
Type
FilterFnOption<TData>
Description
The filter function to use for global filtering.
- A
- A
- A
string referencing a built-in filter function- A
string that references a custom filter functions provided via the
tableOptions.filterFns option - A custom filter functionType
| false
| 'remove'
| 'reorder'
Description
Grouping columns are automatically reordered by default to the start of the
columns list. If you would rather remove them or leave them as-is, set the
appropriate mode here.
Type
booleanDescription
Include child rows when pinning parent.
Type
booleanDescription
Include parent rows when pinning child.
Type
InitialTableStateDescription
Use this option to optionally pass initial state to the table. This state will
be used when resetting various table states either automatically by the table
(e.g.,
Table state will not be reset when this object changes, which also means that the initial state object does not need to be stable.
options.autoResetPageIndex) or via functions like
table.resetRowSelection(). Most reset functions allow you to optionally pass a
flag to reset to a blank/default state instead of the initial state.Table state will not be reset when this object changes, which also means that the initial state object does not need to be stable.
Type
(
e: unknown,
) => boolean
Description
Pass a custom function that will be used to determine if a multi-sort event
should be triggered. It is passed the event from the sort toggle handler and
should return
true if the event should trigger a multi-sort.Type
booleanDescription
When
false, pinned rows will not be visible if they are filtered or paginated
out of the table. When true, pinned rows will always be visible regardless of
filtering or pagination. Defaults to true.Type
booleanDescription
Enables manual row expansion. If this is set to
true, getExpandedRowModel
will not be used to expand rows and you would be expected to perform the
expansion in your own data model. This is useful if you are doing server-side
expansion.Type
booleanDescription
Disables the
getFilteredRowModel from being used to filter data. This may be
useful if your table needs to dynamically support both client-side and
server-side filtering.Type
booleanDescription
Enables manual grouping. If this option is set to
true, the table will not
automatically group rows using getGroupedRowModel() and instead will expect
you to manually group the rows before passing them to the table. This is useful
if you are doing server-side grouping and aggregation.Type
booleanDescription
Enables manual pagination. If this option is set to
true, the table will not
automatically paginate rows using getPaginationRowModel() and instead will
expect you to manually paginate the rows before passing them to the table. This
is useful if you are doing server-side pagination and aggregation.Type
booleanDescription
Enables manual sorting for the table. If this is
true, you will be expected
to sort your data before it is passed to the table. This is useful if you are
doing server-side sorting.Type
numberDescription
By default, filtering is done for all rows (max depth of 100), no matter if
they are root level parent rows or the child leaf rows of a parent row. Setting
this option to
This is useful for situations where you want a row's entire child hierarchy to be visible regardless of the applied filter.
0 will cause filtering to only be applied to the root level
parent rows, with all sub-rows remaining unfiltered. Similarly, setting this
option to 1 will cause filtering to only be applied to child leaf rows 1
level deep, and so on.This is useful for situations where you want a row's entire child hierarchy to be visible regardless of the applied filter.
Type
numberDescription
Set a maximum number of columns that can be multi-sorted.
Type
(
defaultOptions: TableOptions<TData>,
options: Partial<
TableOptions<TData>
>,
) => TableOptions<TData>
Description
This option is used to optionally implement the merging of table options.
Type
TableMeta<TData>
Description
You can pass any object to
options.meta and access it anywhere the table is
available via table.options.meta.Type
(
updaterOrValue:
| T
| ((old: T) => T),
) => void
Description
If provided, this function will be called with an
updaterFn when
state.columnFilters changes. This overrides the default internal state
management, so you will need to persist the state change either fully or
partially outside the table.Type
(
updaterOrValue:
| T
| ((old: T) => T),
) => void
Description
If provided, this function will be called with an
updaterFn when
state.columnOrder changes. This overrides the default internal state
management, so you will need to persist the state change either fully or
partially outside the table.Type
(
updaterOrValue:
| T
| ((old: T) => T),
) => void
Description
If provided, this function will be called with an
updaterFn when
state.columnPinning changes. This overrides the default internal state
management, so you will also need to supply state.columnPinning from your own
managed state.Type
(
updaterOrValue:
| T
| ((old: T) => T),
) => void
Description
If provided, this function will be called with an
updaterFn when
state.columnSizing changes. This overrides the default internal state
management, so you will also need to supply state.columnSizing from your own
managed state.Type
(
updaterOrValue:
| T
| ((old: T) => T),
) => void
Description
If provided, this function will be called with an
updaterFn when
state.columnSizingInfo changes. This overrides the default internal state
management, so you will also need to supply state.columnSizingInfo from your
own managed state.Type
OnChangeFn<VisibilityState>
Description
If provided, this function will be called with an
updaterFn when
state.columnVisibility changes. This overrides the default internal state
management, so you will need to persist the state change either fully or
partially outside of the table.Type
OnChangeFn<ExpandedState>
Description
This function is called when the
expanded table state changes. If a function
is provided, you will be responsible for managing this state on your own. To
pass the managed state back to the table, use the tableOptions.state.expanded
option.Type
(
updaterOrValue:
| T
| ((old: T) => T),
) => void
Description
If provided, this function will be called with an
updaterFn when
state.globalFilter changes. This overrides the default internal state
management, so you will need to persist the state change either fully or
partially outside the table.Type
(
updaterOrValue:
| T
| ((old: T) => T),
) => void
Description
If this function is provided, it will be called when the grouping state changes
and you will be expected to manage the state yourself. You can pass the managed
state back to the table via the
tableOptions.state.grouping option.Type
(
updaterOrValue:
| T
| ((old: T) => T),
) => void
Description
If this function is provided, it will be called when the pagination state
changes and you will be expected to manage the state yourself. You can pass the
managed state back to the table via the
tableOptions.state.pagination option.Type
(
updaterOrValue:
| T
| ((old: T) => T),
) => void
Description
If provided, this function will be called with an
updaterFn when
state.rowPinning changes. This overrides the default internal state
management, so you will also need to supply state.rowPinning from your own
managed state.Type
(
updaterOrValue:
| T
| ((old: T) => T),
) => void
Description
If provided, this function will be called with an
updaterFn when
state.rowSelection changes. This overrides the default internal state
management, so you will need to persist the state change either fully or
partially outside of the table.Type
(
updaterOrValue:
| T
| ((old: T) => T),
) => void
Description
If provided, this function will be called with an
updaterFn when
state.sorting changes. This overrides the default internal state management,
so you will need to persist the state change either fully or partially outside
of the table.Type
(
updater: Updater<TableState>,
) => void
Description
The
onStateChange option can be used to optionally listen to state changes
within the table.Type
numberDescription
When manually controlling pagination, you should supply a total
pageCount
value to the table if you know it. If you do not know how many pages there are,
you can set this to -1.Type
booleanDescription
If
true expanded rows will be paginated along with the rest of the table
(which means expanded rows may span multiple pages). If false expanded rows
will not be considered for pagination (which means expanded rows will always
render on their parents page. This also means more rows will be rendered than
the set page size)Type
anyDescription
Value used when the desired value is not found in the data.
Type
booleanDescription
If
true, all sorts will default to descending as their first toggle state.Type
Record<
string,
any
>
Type
Partial<TableState>
Description
The
state option can be used to optionally _control_ part or all of the table
state. The state you pass here will merge with and overwrite the internal
automatically-managed state to produce the final state for the table. You can
also listen to state changes via the onStateChange option. > Note: Any state
passed in here will override both the internal state and any other
initialState you provide.