【问题标题】:React-Native Calendars: Pass date into custom function when a day is pressedReact-Native Calendars:按下一天时将日期传递给自定义函数
【发布时间】:2019-01-13 15:20:22
【问题描述】:

使用 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,所以我知道我可以用它来做我想做的事。这是正在发生的事情:

enter image description here

【问题讨论】:

    标签: javascript react-native calendar react-native-calendars


    【解决方案1】:

    onDayPress 函数在其回调中返回一个对象。这就是为什么当你提醒它时你会得到 [object Object]。它返回的对象应该是这样的

    {
      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)}
    

    它应该给你你想要的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-13
      相关资源
      最近更新 更多