React-Native Calendars: передача даты в пользовательскую функцию при нажатии на день
Используя календарь из React-Native Calendars, я просто хочу иметь возможность передавать дату (возможно, как dateString) в функцию при нажатии на день.
Вот мой код:
import React, {Component} from 'react';
import {View, Text, Button, ScrollView} from 'react-native';
import colors from '../config/colors';
import { TextInput } from '../components/TextInput';
import { Calendar } from 'react-native-calendars';
class SetReservation extends Component {
showDayTest(date) {
alert(date);
}
render() {
return (
<View>
<Calendar
onDayPress={(dateString) => this.showDayTest(dateString)}
/>
</View>
);
}
}
export default SetReservation;
Сейчас я просто хочу, чтобы он оповещал dateString в этой тестовой функции при нажатии на день, поэтому я знаю, что могу использовать его для выполнения того, что я хочу. Вот что происходит:
1 ответ
Решение
Функция onDayPress возвращает объект в своем обратном вызове. Вот почему, когда вы предупреждаете об этом, вы получаете [объект объекта]. Возвращаемый объект должен выглядеть так
{
day: 1, // day of month (1-31)
month: 1, // month of year (1-12)
year: 2017, // year
timestamp, // UTC timestamp representing 00:00 AM of this date
dateString: '2016-05-13' // date formatted as 'YYYY-MM-DD' string
}
Если вы поместите dateString в JSON.stringify, вы должны увидеть полный объект в предупреждении
onDayPress={(dateString) => this.showDayTest(JSON.stringify(dateString))}
Однако, если вы деконструируете возвращаемый объект и делаете это
onDayPress={({dateString}) => this.showDayTest(dateString)}
это должно дать вам то, что вы хотите.