选择器
一个用于从列表中选择选项的 SwiftUI Picker 组件。
For the complete documentation index, see llms.txt. Use this Use this file to discover all available pages.
Expo UI Picker 与官方 SwiftUI Picker API 保持一致,并通过 pickerStyle 修饰符支持所有 picker 样式。
安装
- npx expo install @expo/uiIf you are installing this in an existing React Native app, make sure to install expo in your project.
分段选择器
import { useState } from 'react'; import { Host, Picker, Text } from '@expo/ui/swift-ui'; import { pickerStyle, tag } from '@expo/ui/swift-ui/modifiers'; const options = ['Apple', 'Banana', 'Orange']; export default function SegmentedPickerExample() { const [selectedTag, setSelectedTag] = useState(options[0]); return ( <Host matchContents> <Picker modifiers={[pickerStyle('segmented')]} label="选择一种水果" selection={selectedTag} onSelectionChange={selection => { setSelectedTag(selection); }}> {options.map(option => ( <Text key={option} modifiers={[tag(option)]}> {option} </Text> ))} </Picker> </Host> ); }
菜单选择器
import { useState } from 'react'; import { Host, Picker, Text } from '@expo/ui/swift-ui'; import { pickerStyle, tag } from '@expo/ui/swift-ui/modifiers'; const options = ['Apple', 'Banana', 'Orange']; export default function MenuPickerExample() { const [selectedTag, setSelectedTag] = useState(options[0]); return ( <Host matchContents> <Picker modifiers={[pickerStyle('menu')]} label="选择一种水果" selection={selectedTag} onSelectionChange={selection => { setSelectedTag(selection); }}> {options.map(option => ( <Text key={option} modifiers={[tag(option)]}> {option} </Text> ))} </Picker> </Host> ); }
滚轮选择器
警告 滚轮变体在 Apple TV 上不可用。
import { useState } from 'react'; import { Host, Picker, Text } from '@expo/ui/swift-ui'; import { pickerStyle, tag } from '@expo/ui/swift-ui/modifiers'; const options = ['Apple', 'Banana', 'Orange']; export default function WheelPickerExample() { const [selectedTag, setSelectedTag] = useState(options[0]); return ( <Host matchContents> <Picker modifiers={[pickerStyle('wheel')]} label="选择一种水果" selection={selectedTag} onSelectionChange={selection => { setSelectedTag(selection); }}> {options.map(option => ( <Text key={option} modifiers={[tag(option)]}> {option} </Text> ))} </Picker> </Host> ); }
API
import { Picker } from '@expo/ui/swift-ui';
Component
Type: React.Element<PickerProps<T>>
Displays a native picker component
Example
<Picker modifiers={[pickerStyle('segmented')]}> <Text modifiers={[tag('option1')]}>Option 1</Text> <Text modifiers={[tag(0)]}>Option 3</Text> </Picker>
React.ReactNodeThe content of the picker. You can use Text components with tag modifiers to display the options.
unionA label displayed on the picker.
Acceptable values are: string | React.ReactNode
(selection: T) => voidCallback function that is called when an option is selected.
Gets called with the selected tag value.
SFSymbolThe name of the system image (SF Symbol). For example: 'photo', 'heart.fill', 'star.circle'