mirror of
https://github.com/gosticks/react-table.git
synced 2025-10-16 11:55:36 +00:00
* Update utils.js * Update useTable.js * Create useColumnVisibility.js * Update useColumnVisibility.js * Update useColumnVisibility.js * Convert to core hook, use new reducerHanndler/actions * Add useColumnVisibility internal hook
3.6 KiB
3.6 KiB
useExpanded
- Plugin Hook
- Optional
useExpanded is the hook that implements row expanding. It is most often used with useGroupBy to expand grouped rows or on its own with nested subRows in tree-like data sets, but is not limited to these use-cases. It supports expanding rows both via internal table state and also via a hard-coded key on the raw row model.
Table Options
The following options are supported via the main options object passed to useTable(options)
state.expanded: Array<pathKey: String>- Optional
- Must be memoized
- An array of expanded path keys.
- If a row's path key (
row.path.join('.')) is present in this array, that row will have an expanded state. For example, if['3']was passed as theexpandedstate, the 4th row in the original data array would be expanded. - For nested expansion, you may join the row path with a
.to expand sub rows. For example, if['3', '3.5']was passed as theexpandedstate, then the 6th subRow of the 4th row and also the 4th row of the original data array would be expanded. - This information is stored in state since the table is allowed to manipulate the filter through user interaction.
initialState.expanded- Identical to the
state.expandedoption above
- Identical to the
getSubRows: Function(row, relativeIndex) => Rows[]- Optional
- See the useTable hook for more details
manualExpandedKey: String- Optional
- Defaults to
expanded - This string is used as the key to detect manual expanded state on any given row. For example, if a raw data row like
{ name: 'Tanner Linsley', friends: [...], expanded: true}was detected, it would always be expanded, regardless of state.
expandSubRows: Bool- Optional
- Defaults to
true - If set to
true, expanded rows are rendered along with normal rows. - If set to
false, expanded rows will only be available through their parent row. This could be useful if you are implementing a custom expanded row view.
getResetExpandedDeps: Function(instance) => [...useEffectDependencies]- Optional
- Defaults to resetting the
expandedstate to[]when the dependencies below change-
const getResetExpandedDeps = ({ data }) => [data]
-
- If set, the dependencies returned from this function will be used to determine when the effect to reset the
expandedstate is fired. - To disable, set to
false - For more information see the FAQ "How do I stop my table state from automatically resetting when my data changes?"
Instance Properties
The following properties are available on the table instance returned from useTable
rows: Array<Row>- An array of sorted rows.
Row Properties
The following additional properties are available on every row object returned by the table instance.
isExpanded: Bool- If
true, this row is in an expanded state.
- If
toggleExpanded: Function(?isExpanded: Bool) => void- This function will toggle the expanded state of a row between
trueandfalseor, if anisExpandedboolean is passed to the function, it will be set as the newisExpandedvalue. - Rows with a hard-coded
manualExpandedKey(defaults toexpanded) set totrueare not affected by this function or the internal expanded state.
- This function will toggle the expanded state of a row between