This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.
Picker
A picker compatible with @react-native-picker/picker.
A Picker component with an API compatible with @react-native-picker/picker. It uses a SwiftUI wheel Picker on iOS, a Material 3 ExposedDropdownMenuBox on Android, and a native <select> element on web.
Under the hood this component wraps the platform-specific @expo/ui primitives:
- Android: Jetpack Compose ExposedDropdownMenuBox
- iOS: SwiftUI Picker with
pickerStyle('wheel')
If you need lower-level control, use those primitives directly.
Installation
If you are installing this in an existing React Native app, make sure to install expo in your project.
Migrating from @react-native-picker/picker
- Update the import from
import { Picker } from '@react-native-picker/picker'toimport { Picker } from '@expo/ui/community/picker'. mode,prompt,dropdownIconColor,dropdownIconRippleColor,numberOfLines,selectionColor,itemStyle, andaccessibilityLabelprops are not supported.- On
Picker.Item, thestyleprop only appliescolor,backgroundColor,fontFamily, andfontSize. The top-levelcolorandfontFamilyprops are still supported as aliases for the correspondingstylevalues. enabledonPicker.Itemonly applies on Android.- The
reffocus()andblur()methods only have an effect on Android (open/close the dropdown). On iOS, the wheel picker is always visible.
Basic usage
Per-item styling and state
Pass a style to Picker.Item to control color, backgroundColor, fontFamily, and fontSize per item, and enabled={false} to disable specific items on Android.
fontFamily accepts iOS font names (for example, 'Menlo') on iOS, and Compose generic families ('monospace', 'serif', 'sansSerif', 'cursive') or fonts loaded with expo-font on Android.
Imperative focus and blur (Android)
Use a ref to programmatically open and close the dropdown on Android. On iOS, these methods are no-ops because the wheel picker is always visible.
API
import { Picker } from '@expo/ui/community/picker';
Components
Type: React.Element<PickerProps<T>>
A drop-in replacement for @react-native-picker/picker on web.
Renders a native <select> element.
ReactNodePicker.Item children that define the available options.
(itemValue: T, itemIndex: number) => voidCallback when an item is selected. Called with (itemValue, itemIndex).
TThe currently selected value. Must match the value of one of the Picker.Item children.
Type: React.Element<ComponentType<PickerItemProps>>
stringText color for the item. Equivalent to setting color in the style prop.
stringCustom font family for the item. Equivalent to setting fontFamily in the style prop.
StyleProp<TextStyle>Style applied to the item label. Only the following values take effect:
color, backgroundColor, fontFamily, and fontSize. When also set
via the top-level color or fontFamily props, values from style win.