This is documentation for the next SDK version. For up-to-date documentation, see the latest version (SDK 55).
DatePicker
一个用于选择日期和时间的 SwiftUI DatePicker 组件。
iOS
For the complete documentation index, see llms.txt. Use this Use this file to discover all available pages.
Expo UI DatePicker 与官方 SwiftUI DatePicker API 一致,并支持通过 datePickerStyle 修饰符进行样式设置。
安装
Terminal
- npx expo install @expo/uiIf you are installing this in an existing React Native app, make sure to install expo in your project.
日期选择器
DatePickerExample.tsx
import { useState } from 'react'; import { Host, DatePicker } from '@expo/ui/swift-ui'; export default function DatePickerExample() { const [selectedDate, setSelectedDate] = useState(new Date()); return ( <Host matchContents> <DatePicker title="选择日期" selection={selectedDate} displayedComponents={['date']} onDateChange={date => { setSelectedDate(date); }} /> </Host> ); }
时间选择器
TimePickerExample.tsx
import { useState } from 'react'; import { Host, DatePicker } from '@expo/ui/swift-ui'; export default function TimePickerExample() { const [selectedDate, setSelectedDate] = useState(new Date()); return ( <Host matchContents> <DatePicker title="选择时间" selection={selectedDate} displayedComponents={['hourAndMinute']} onDateChange={date => { setSelectedDate(date); }} /> </Host> ); }
日期和时间选择器
DateTimePickerExample.tsx
import { useState } from 'react'; import { Host, DatePicker } from '@expo/ui/swift-ui'; export default function DateTimePickerExample() { const [selectedDate, setSelectedDate] = useState(new Date()); return ( <Host matchContents> <DatePicker title="选择日期和时间" selection={selectedDate} displayedComponents={['date', 'hourAndMinute']} onDateChange={date => { setSelectedDate(date); }} /> </Host> ); }
带日期范围
DateRangePickerExample.tsx
import { useState } from 'react'; import { Host, DatePicker } from '@expo/ui/swift-ui'; export default function DateRangePickerExample() { const [selectedDate, setSelectedDate] = useState(new Date()); return ( <Host matchContents> <DatePicker title="选择日期" selection={selectedDate} displayedComponents={['date']} range={{ start: new Date(2024, 0, 1), end: new Date(2024, 11, 31), }} onDateChange={date => { setSelectedDate(date); }} /> </Host> ); }
使用修饰符进行样式设置
你可以使用 datePickerStyle 修饰符来更改选择器的外观。可用样式包括:automatic、compact、graphical 和 wheel。
WheelDatePickerExample.tsx
import { useState } from 'react'; import { Host, DatePicker } from '@expo/ui/swift-ui'; import { datePickerStyle } from '@expo/ui/swift-ui/modifiers'; export default function WheelDatePickerExample() { const [selectedDate, setSelectedDate] = useState(new Date()); return ( <Host matchContents> <DatePicker modifiers={[datePickerStyle('wheel')]} title="选择日期" selection={selectedDate} displayedComponents={['date']} onDateChange={date => { setSelectedDate(date); }} /> </Host> ); }
GraphicalDatePickerExample.tsx
import { useState } from 'react'; import { Host, DatePicker } from '@expo/ui/swift-ui'; import { datePickerStyle } from '@expo/ui/swift-ui/modifiers'; export default function GraphicalDatePickerExample() { const [selectedDate, setSelectedDate] = useState(new Date()); return ( <Host matchContents> <DatePicker modifiers={[datePickerStyle('graphical')]} title="选择日期" selection={selectedDate} displayedComponents={['date']} onDateChange={date => { setSelectedDate(date); }} /> </Host> ); }
禁用的选择器
DisabledDatePickerExample.tsx
import { useState } from 'react'; import { Host, DatePicker } from '@expo/ui/swift-ui'; export default function DisabledDatePickerExample() { const [selectedDate, setSelectedDate] = useState(new Date()); return ( <Host matchContents> <DatePicker title="选择日期" selection={selectedDate} displayedComponents={['date']} onDateChange={date => { setSelectedDate(date); }} disabled /> </Host> ); }
自定义区域设置
使用 locale 属性可将选择器显示为特定区域设置。
LocaleDatePickerExample.tsx
import { useState } from 'react'; import { Host, DatePicker } from '@expo/ui/swift-ui'; export default function LocaleDatePickerExample() { const [selectedDate, setSelectedDate] = useState(new Date()); return ( <Host matchContents> <DatePicker title="选择日期" selection={selectedDate} displayedComponents={['date']} onDateChange={date => { setSelectedDate(date); }} locale="fr_FR" /> </Host> ); }
自定义时区
使用 timeZone 属性可将选择器显示为特定的 IANA 时区。
TimeZoneDatePickerExample.tsx
import { useState } from 'react'; import { Host, DatePicker } from '@expo/ui/swift-ui'; export default function TimeZoneDatePickerExample() { const [selectedDate, setSelectedDate] = useState(new Date()); return ( <Host matchContents> <DatePicker title="东京时间" selection={selectedDate} displayedComponents={['date', 'hourAndMinute']} onDateChange={date => { setSelectedDate(date); }} timeZone="Asia/Tokyo" /> </Host> ); }
自定义区域设置
使用 locale 属性可将选择器显示为特定区域设置。
LocaleDatePickerExample.tsx
import { useState } from 'react'; import { Host, DatePicker } from '@expo/ui/swift-ui'; export default function LocaleDatePickerExample() { const [selectedDate, setSelectedDate] = useState(new Date()); return ( <Host matchContents> <DatePicker title="选择日期" selection={selectedDate} displayedComponents={['date']} onDateChange={date => { setSelectedDate(date); }} locale="fr_FR" /> </Host> ); }
自定义时区
使用 timeZone 属性可将选择器显示为特定的 IANA 时区。
TimeZoneDatePickerExample.tsx
import { useState } from 'react'; import { Host, DatePicker } from '@expo/ui/swift-ui'; export default function TimeZoneDatePickerExample() { const [selectedDate, setSelectedDate] = useState(new Date()); return ( <Host matchContents> <DatePicker title="东京时间" selection={selectedDate} displayedComponents={['date', 'hourAndMinute']} onDateChange={date => { setSelectedDate(date); }} timeZone="Asia/Tokyo" /> </Host> ); }
API
import { DatePicker } from '@expo/ui/swift-ui';
Component
Type: React.Element<DatePickerProps>
Renders a SwiftUI DatePicker component.
Optional • Type:
DatePickerComponent[] • Default: ['date']The components to display: 'date' and/or 'hourAndMinute'.