REACT-NATIVES
WIRED FOR SPEED
react-natives v2.1.2
Theme
Light
Dark
Get Started
Menu
Components
Form Controls
Select
A compound dropdown select component with trigger, portal-based content, search filtering, single-select, and multi-select badge support.
Example
Preview
Code
Props
Select Props
Prop
Type
Default
Description
className
string
NativeWind utility classes for the select container.
isMulti
boolean
false
Enables multiple selected values and keeps the dropdown open by default after each item press.
selectedValue
string
The controlled selected value for single-select mode.
defaultValue
string
The initial selected value when uncontrolled in single-select mode.
onValueChange
(value: string) => void
Callback invoked when the selected value changes in single-select mode.
selectedValues
string[]
The controlled selected values for multi-select mode.
defaultValues
string[]
The initial selected values when uncontrolled in multi-select mode.
onValuesChange
(values: string[]) => void
Callback invoked when selected values change in multi-select mode.
valueLabels
Record<string, string>
Maps selected values to labels before dropdown items have registered themselves.
closeOnSelect
boolean
Overrides whether the dropdown closes after pressing an item. Defaults to true for single-select and false for multi-select.
searchValue
string
Controlled search text used by SelectSearchInput and item filtering.
defaultSearchValue
string
Initial search text when search is uncontrolled.
onSearchChange
(value: string) => void
Callback invoked when the SelectSearchInput value changes.
filterOption
(searchValue: string, option: SelectOption) => boolean
Custom filter predicate for matching dropdown items.
formatSelectedLabel
(items: SelectOption[]) => string
Customizes the summary text shown by SelectInput in multi-select mode.
size
'sm' | 'md' | 'lg' | 'xl'
'md'
Controls the size of the select trigger.
variant
'outline' | 'filled' | 'underlined' | 'rounded'
'outline'
The visual variant of the select trigger.
isDisabled
boolean
false
Disables the select.
isInvalid
boolean
false
Applies invalid/error styling to the select.
placeholder
string
Placeholder text shown when no value is selected.
SelectTrigger Props
Prop
Type
Default
Description
className
string
NativeWind utility classes for the select trigger button.
SelectInput Props
Prop
Type
Default
Description
className
string
NativeWind utility classes for the select input display.
placeholder
string
Placeholder text for the select input.
SelectIcon Props
Prop
Type
Default
Description
as
React.ElementType
The icon component to render as the dropdown indicator.
className
string
NativeWind utility classes for the select icon.
SelectBackdrop Props
Prop
Type
Default
Description
className
string
NativeWind utility classes for the select backdrop overlay.
SelectContent Props
Prop
Type
Default
Description
className
string
NativeWind utility classes for the dropdown content container.
SelectSearchInput Props
Prop
Type
Default
Description
className
string
NativeWind utility classes for the search input wrapper.
inputClassName
string
NativeWind utility classes for the text input element.
clearButtonClassName
string
NativeWind utility classes for the clear button.
isClearable
boolean
true
Shows a clear button when the search input has text.
SelectSelectedBadges Props
Prop
Type
Default
Description
className
string
NativeWind utility classes for the selected badges container.
maxVisible
number
Maximum number of selected badges to render before showing an overflow badge.
showRemoveButton
boolean
true
Controls whether each badge includes a remove button.
renderBadge
(item: SelectOption, helpers: { remove: () => void; isDisabled: boolean }) => React.ReactNode
Custom render function for selected badges.
SelectItem Props
Prop
Type
Default
Description
className
string
NativeWind utility classes for the select item.
label *
string
The display label for the item.
value *
string
The value associated with this item.
isDisabled
boolean
false
Disables the select item.
Usage Guidelines
When to use
Use Select for picking one or more options from a list that is too long for radio buttons or checkboxes.
Best practices
Use placeholder text to describe what should be selected.
Add SelectSearchInput for long option lists.
Use SelectSelectedBadges for multi-select values that users may need to remove quickly.
Use the same variant as your Input components for consistency.
Accessibility
Select trigger and items are accessible. Selected values are announced by screen readers, and multi-select items expose selected state.
Related Components
Radio
A compound radio button component for single-selection within a group, with indicator, icon, and label sub-components.
Input
A compound text input component with support for leading/trailing slots, icons, and multiple visual variants.
Checkbox
A compound checkbox component supporting individual and grouped selection with indicator, icon, and label sub-components.
FormControl
A compound wrapper that provides shared state (disabled, invalid, required, read-only) to its label, helper text, and error message children.
React-Natives
A comprehensive React Native component library.
Documentation
Getting Started
Components
Theming
Community
GitHub
Discord
Twitter
Blog
Support
FAQ
Contact
Contributing
License
© 2026 React-Natives. Wired by WireServers-UI.