React-Native Calendars: передача даты в пользовательскую функцию при нажатии на день - PullRequest
0 голосов
/ 13 января 2019

Используя календарь из 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 Ответ

0 голосов
/ 13 января 2019

Функция 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)}

это должно дать вам то, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...