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 single-selection input with menu and wheel appearances.
Picker is a single-selection input. You can use <Picker.Item label value /> children to declare options so that the parent Picker reads them and renders a platform-appropriate dropdown or rotor.
The universal Picker is independent of @expo/ui/community/picker, which remains a compat shim for @react-native-picker/picker. Prefer this universal Picker for new code unless you specifically need the RN-Picker API surface.
Installation
If you are installing this in an existing React Native app, make sure to install expo in your project.
Usage
Menu appearance (default)
Wheel appearance
appearance="wheel" renders an inline scrollable rotor on iOS. On Android and web, this falls back to the platform's default dropdown (Material 3 doesn't ship a wheel-style picker).
API
import { Picker } from '@expo/ui';
Component
Type: React.Element<PickerProps<T>>
A single-selection input.
Declare options via <Picker.Item label value /> children.
Props for the Picker component, a single-selection input.
PickerAppearance • Default: 'menu'Visual appearance of the picker.
See PickerAppearance.
ReactNode<Picker.Item> children that declare the available options.
TThe currently selected value.
Must match the value of one of the <Picker.Item> children.
Interfaces
Types
Literal type: string
Visual appearance of the picker.
'menu'— Compact button that opens a popup/dropdown on tap. Cross-platform default.'wheel'— Scrollable rotor UI that's always visible inline. iOS only; on Android and web this falls back to the platform's default dropdown.
Acceptable values are: 'wheel' | 'menu'
Literal type: union
The type of values a Picker.Item can carry.
Acceptable values are: string | number