Для реализации Date Picker на React Native существует несколько подходов. Я расскажу о двух наиболее популярных способах.
Первый способ - использование стандартного компонента DatePickerIOS, который предоставляется React Native. Он предназначен только для iOS. Для его использования нужно сначала импортировать компонент:
import { DatePickerIOS } from 'react-native';
Затем можно создать состояние, чтобы хранить выбранную дату:
const [selectedDate, setSelectedDate] = useState(new Date());
Далее можно использовать компонент DatePickerIOS в JSX:
<DatePickerIOS date={selectedDate} onDateChange={setSelectedDate} />
Компоненту DatePickerIOS нужно передать свойство date, которое будет содержать выбранную или начальную дату, и свойство onDateChange, которое будет вызываться при изменении даты.
Второй способ - использование сторонней библиотеки, такой как react-native-datepicker или react-native-modal-datetime-picker, которые предлагают более гибкие возможности и поддерживают как iOS, так и Android.
Для использования react-native-datepicker нужно установить его через npm:
npm install react-native-datepicker --save
Затем можно импортировать компонент:
import DatePicker from 'react-native-datepicker';
Чтобы использовать его в JSX, нужно создать состояние, чтобы хранить выбранную дату:
const [selectedDate, setSelectedDate] = useState('');
И затем использовать компонент DatePicker в JSX:
<DatePicker date={selectedDate} mode="date" placeholder="Select date" format="YYYY-MM-DD" onDateChange={(date) => setSelectedDate(date)} />
Компоненту DatePicker нужно передать свойство date, которое содержит выбранную или начальную дату, и свойство onDateChange, которое вызывается при изменении даты.
React Native также предоставляет другие способы реализации Date Picker, такие как использование модального окна или календаря, как компонентов, так и сторонних библиотек. Решение зависит от ваших потребностей и предпочтений, но независимо от выбранного способа, вы должны следовать документации и принятому стилю написания кода для обеспечения правильной реализации.