useSelectState
Provides state management for a select component. Handles building a collection of items from props, handles the open state for the popup menu, and manages multiple selection state.
| install | yarn add react-stately |
|---|---|
| version | 3.47.0 |
| usage | import {useSelectState} from 'react-stately' |
API#
useSelectState<T, M extends SelectionMode = 'single'>(
(props: SelectStateOptions<T, M>
)): SelectState<T, M>
Interface#
Properties
| Name | Type | Description |
value | ValueType<SelectionMode> | The current select value. |
defaultValue | ValueType<SelectionMode> | The default select value. |
selectedItems | Node<T>[] | The value of the selected items. |
isFocused | boolean | Whether the select is currently focused. |
focusStrategy | FocusStrategy | null | Controls which item will be auto focused when the menu opens. |
collection | Collection<Node<T>> | A collection of items in the list. |
disabledKeys | Set<Key> | A set of items that are disabled. |
selectionManager | SelectionManager | A selection manager to read and update multiple selection state. |
isOpen | boolean | Whether the overlay is currently open. |
realtimeValidation | ValidationResult | Realtime validation results, updated as the user edits the value. |
displayValidation | ValidationResult | Currently displayed validation results, updated when the user commits their changes. |
Methods
| Method | Description |
setValue(
(value: Key
| readonly Key[]
| null
)): void | Sets the select value. |
setFocused(
(isFocused: boolean
)): void | Sets whether the select is focused. |
open(
(focusStrategy?: FocusStrategy
| | null
)): void | Opens the menu. |
toggle(
(focusStrategy?: FocusStrategy
| | null
)): void | Toggles the menu. |
setOpen(
(isOpen: boolean
)): void | Sets whether the overlay is open. |
close(): void | Closes the overlay. |
updateValidation(
(result: ValidationResult
)): void | Updates the current validation result. Not displayed to the user until |
resetValidation(): void | Resets the displayed validation state to valid when the user resets the form. |
commitValidation(): void | Commits the realtime validation so it is displayed to the user. |
Example#
See the docs for useSelect in react-aria for an example of useSelectState.