React-Native Calendars:按下一天时将日期传递给自定义函数
React-Native Calendars: Pass date into custom function when a day is pressed
使用 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;
现在,我只想让它在按下日期时在此测试函数中提醒一个日期字符串,这样我就知道我可以用它来做我想做的事。这是正在发生的事情:
enter image description here
onDayPress 函数 returns 回调中的一个对象。这就是为什么当你提醒它时你会得到 [object Object]。它 returns 的对象应该看起来像
{
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)}
它应该给你你想要的。
使用 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;
现在,我只想让它在按下日期时在此测试函数中提醒一个日期字符串,这样我就知道我可以用它来做我想做的事。这是正在发生的事情:
enter image description here
onDayPress 函数 returns 回调中的一个对象。这就是为什么当你提醒它时你会得到 [object Object]。它 returns 的对象应该看起来像
{
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)}
它应该给你你想要的。