What problem does it solve?
TanStack Table v9 state ownership can become confusing when mixing initialState, controlled React state, and shared external atoms, leading to “stuck” UI, silently ignored updates, and incorrect server-side behavior.
Core Features & Use Cases
- Coordinate state ownership: Choose exactly one source of truth per slice among internal defaults,
initialState, state+on*Change (v8-style), and atoms (v9 preferred).
- Apply correct slice precedence: Atoms override state and initialState, and baseAtoms provide the fallback layer—so precedence is deterministic.
- Support server-side / manual modes: Correctly pair
manualSorting, manualFiltering, manualPagination, manualGrouping, and manualExpanding with server-prepared rows.
- Use reset safely: Understand how
reset() differs from feature-specific reset APIs when slices are owned externally.
- Work with state shapes: Correctly use
SortingState, PaginationState, RowSelectionState, ColumnFiltersState, and GroupingState for consistent updates.
Quick Start
Configure TanStack Table by picking a single ownership pattern for each state slice, then wire the matching setters (feature APIs or on*Change) so UI actions update the same state source you read from.