react-table/docs/api/useRowState.md
Tanner Linsley ddfa0fa227 Death of the path, fix some hooks, fix selectedRows
- Fixed an issue where dependency hooks were not being reduced properly, thus the table would rerender unnecessarily
- Renamed `toggleRowSelectedAll` to `toggleAllRowsSelected`. Duh...
- Added an `indeterminate` boolean prop to the default props for row selection toggle prop getters
- Renamed `selectedRowPaths` to `selectedRowIds`, which also no longer contains paths, but row IDs
- Grouped or nested row selection actions and state are now derived, instead of tracked in state.
- Rows now have a new property called `id`, which existed before and was derived from the `getRowId` option
- Rows now also have an `isSomeSelected` prop when using the `useRowSelect` hook, which denotes that at least one subRow is selected (if applicable)
- Rows' `path` property has been deprecated in favor of `id`
- Expanded state is now tracked with row IDs instead of paths
- RowState is now tracked with row IDs instead of paths
- `toggleExpandedByPath` has been renamed to `toggleExpandedById`, and thus accepts a row ID now, instead of a row path
2019-12-10 23:04:34 -07:00

3.3 KiB

useRowState

  • Plugin Hook
  • Optional

useRowState is a plugin hook that implements basic state management for prepared rows and their cells.

Table Options

The following options are supported via the main options object passed to useTable(options)

  • state.rowState: Object<RowPathKey:Object<any, cellState: {columnId: Object}>>
    • Optional
    • Defaults to {}
    • If a row's ID is found in this array, it will have the state of the value corresponding to that key.
    • Individual row states can contain anything, but they also contain a cellState key, which provides cell-level state based on column ID's to every prepared cell in the table.
  • initialState.rowState
    • Identical to the state.rowState option above
  • initialRowStateAccessor: Function
    • Optional
    • This function may optionally return the initial state for a row.
    • If this function is defined, it will be passed a Row object, from which you can return a value to use as the initial state, eg. row => row.original.initialState
  • autoResetRowState: Boolean

Instance Properties

The following values are provided to the table instance:

  • setRowState: Function(rowPath: Array<string>, updater: Function | Any) => void
    • Use this function to programmatically update the state of a row.
    • updater can be a function or value. If a function is passed, it will receive the current value and expect a new one to be returned.
  • setCellState: Function(rowPath: Array<string>, columnId: String, updater: Function | Any) => void
    • Use this function to programmatically update the cell of a row.
    • updater can be a function or value. If a function is passed, it will receive the current value and expect a new one to be returned.

Row Properties

The following additional properties are available on every prepared row object returned by the table instance.

  • state: Object
    • This is the state object for each row, pre-mapped to the row from the table state's rowState object via rowState[row.id]
    • May also contain a cellState key/value pair, which is used to provide individual cell states to this row's cells
  • setState: Function(updater: Function | any)
    • Use this function to programmatically update the state of a row.
    • updater can be a function or value. If a function is passed, it will receive the current value and expect a new one to be returned.

Cell Properties

The following additional properties are available on every Cell object returned in an array of cells on every row object.

  • state: Object
    • This is the state object for each cell, pre-mapped to the cell from the table state's rowState object via rowState[row.id].cellState[columnId]
  • setState: Function(updater: Function | any)
    • Use this function to programmatically update the state of a cell.
    • updater can be a function or value. If a function is passed, it will receive the current value and expect a new one to be returned.