type OctaneTable<TFeatures, TData, TSelected> = Omit<Table<TFeatures, TData>, "store"> & object;Defined in: types.ts:202
The table instance returned by useTable: the framework-agnostic Table from table-core, plus octane's Subscribe/FlexRender components and the selected state.
FlexRender: <TValue>(props) => OctaneNode;An octane 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>
OctaneNode
<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 }))
table.state.globalFilterreadonly 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): unknown;
<TSourceValue, TSubSelected> (props): unknown;
<TSubSelected> (props): unknown;
};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): unknown;TSourceValue
| (state) => OctaneNode | SubscribeStaticChild
undefined
SubscribeSource<TSourceValue>
unknown
<TSourceValue, TSubSelected>(props): unknown;TSourceValue
TSubSelected
| (state) => OctaneNode | SubscribeStaticChild
(state) => TSubSelected
SubscribeSource<TSourceValue>
unknown
<TSubSelected>(props): unknown;TSubSelected
Omit<SubscribePropsWithStore<TFeatures, TSubSelected>, "source">
unknown
TFeatures extends TableFeatures
TData extends RowData
TSelected = TableState<TFeatures>