This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.
选择器
与 @react-native-picker/picker 兼容的选择器。
一个与 @react-native-picker/picker 兼容 API 的 Picker 组件。它在 iOS 上使用 SwiftUI 的轮盘式 Picker,在 Android 上使用 Material 3 的 ExposedDropdownMenuBox,在 Web 上使用原生 <select> 元素。
在底层,这个组件封装了平台特定的 @expo/ui 基础组件:
- Android:Jetpack Compose ExposedDropdownMenuBox
- iOS:SwiftUI Picker 并使用
pickerStyle('wheel')
如果你需要更低层级的控制,请直接使用这些基础组件。


安装
If you are installing this in an existing React Native app, make sure to install expo in your project.
从 @react-native-picker/picker 迁移
- 将导入从
import { Picker } from '@react-native-picker/picker'更新为import { Picker } from '@expo/ui/community/picker'。 - 不支持
mode、prompt、dropdownIconColor、dropdownIconRippleColor、numberOfLines、selectionColor、itemStyle和accessibilityLabel属性。 - 在
Picker.Item上,style属性仅应用color、backgroundColor、fontFamily和fontSize。顶层的color和fontFamily属性仍然受支持,作为对应style值的别名。 Picker.Item上的enabled仅适用于 Android。ref的focus()和blur()方法仅在 Android 上有效(打开/关闭下拉菜单)。在 iOS 上,滚轮选择器始终可见。
基本用法
单项样式和状态
向 Picker.Item 传入 style 可分别控制每一项的 color、backgroundColor、fontFamily 和 fontSize,并且在 Android 上使用 enabled={false} 可禁用特定项。
fontFamily 在 iOS 上接受 iOS 字体名称(例如 'Menlo'),在 Android 上接受 Compose 的通用字体族('monospace'、'serif'、'sansSerif'、'cursive')或使用 expo-font 加载的字体。
命令式聚焦和失焦(Android)
使用 ref 可以以编程方式在 Android 上打开和关闭下拉菜单。在 iOS 上,这些方法不会生效,因为滚轮选择器始终可见。
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.