type ReactTable<TFeatures, TData, TSelected> = Omit<Table<TFeatures, TData>, "store"> & object;Defined in: react-table/src/useTable.ts:29
FlexRender: <TValue>(props) => ReactNode;A React component that renders headers, cells, or footers with custom markup. Use this utility component instead of manually calling flexRender.
TValue extends CellData = CellData
FlexRenderProps<TFeatures, TData, TValue>
ReactNode
<table.FlexRender cell={cell} />
<table.FlexRender header={header} />
<table.FlexRender footer={footer} />This replaces calling flexRender directly like this:
flexRender(cell.column.columnDef.cell, cell.getContext())
flexRender(header.column.columnDef.header, header.getContext())
flexRender(footer.column.columnDef.footer, footer.getContext())readonly state: Readonly<TSelected>;The selected state of the table. This state may not match the structure of the full table state because it is selected by the selector function that you pass as the 2nd argument to useTable.
const table = useTable(options, (state) => ({ globalFilter: state.globalFilter })) // only globalFilter is part of the selected state
console.log(table.state.globalFilter)readonly store: Table<TFeatures, TData>["store"];Prefer table.state for render reads, table.atoms.<slice>.get() for slice snapshots, or table.Subscribe / useSelector(table.store, selector) for explicit subscriptions. table.store.state is a current-value snapshot and is easy to misuse in render code.
Subscribe: {
<TSourceValue> (props): ReactNode | Promise<ReactNode>;
<TSourceValue, TSubSelected> (props): ReactNode | Promise<ReactNode>;
<TSubSelected> (props): ReactNode | Promise<ReactNode>;
};Overloads (not a single union) so selector callbacks get correct contextual types in JSX; a union of two selector signatures degrades to implicit any.
Source without selector is a separate overload so children receive TSourceValue (identity projection). If selector were optional on one overload, TSubSelected would default to unknown instead of inferring from the source.
The source overloads are listed first so TSourceValue is inferred from source.
<TSourceValue>(props): ReactNode | Promise<ReactNode>;TSourceValue
(state) => ReactNode | ReactNode
undefined
SubscribeSource<TSourceValue>
ReactNode | Promise<ReactNode>
<TSourceValue, TSubSelected>(props): ReactNode | Promise<ReactNode>;TSourceValue
TSubSelected
(state) => ReactNode | ReactNode
(state) => TSubSelected
SubscribeSource<TSourceValue>
ReactNode | Promise<ReactNode>
<TSubSelected>(props): ReactNode | Promise<ReactNode>;TSubSelected
Omit<SubscribePropsWithStore<TFeatures, TSubSelected>, "source">
ReactNode | Promise<ReactNode>
TFeatures extends TableFeatures
TData extends RowData
TSelected = TableState<TFeatures>