This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.
This is documentation for the next SDK version. For up-to-date documentation, see the latest version (SDK 57).
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';
No API data file found, sorry!