datepickerIOS没有出现在屏幕上

问题描述 投票:0回答:1

我有一行在点击该视图时显示日期,我想要一个日期选择器弹出并显示。

 class EditProfilePicture extends React.Component {
state = {
    currentDate: new Date()
};
setCurrentDateForIOS = currentDate => {
    this.setState({ currentDate });
};

pickDate = () => (
    <View>
        {Platform.OS === "ios" ? (
            <DatePickerForIOS
                setCurrentDateForIOS={this.setCurrentDateForIOS}
            />
        ) : (
            DatePickerForAndroid().then(currentDate =>
                this.props.changeBirthDate({ currentDate })
            )
        )}
    </View>
);
render() {
    return (
        <View>
            <View style={styles.Container}>
                <Text style={styles.heading}>Your birthday</Text>
                <TouchableWithoutFeedback onPress={this.pickDate}>
                    <View style={styles.dropdown}>
                        <Text style={styles.textStyle}>
                            {DateFormatter(this.state.currentDate)}
                        </Text>
                        <Icon name="chevron-down" color={MED_GREY} />
                    </View>
                </TouchableWithoutFeedback>
            </View>
        </View>
    );
}
}

在DatePickerForIOS我有这个---

 import React from "react";
 import PropTypes from "prop-types";
 import { DatePickerIOS } from "react-native";

 const DatePickerForIOS = props => {
   return (
    <DatePickerIOS
        date={new Date()}
        mode="date"
        onDateChange={() => props.setCurrentDateForIOS}
    />
);
};

DatePickerIOS.propTypes = {
 setCurrentDateForIOS: PropTypes.func.isRequired
 };

 export default DatePickerForIOS;

虽然代码适用于Android,但在IOS中,屏幕最初包含NAN / NAN / NAN作为文本,并且单击视图时日期选择器不会打开。

reactjs react-native datepicker react-native-android react-native-ios
1个回答
1
投票

DatePickerIOS需要成为EditProfilePicture渲染功能的一部分

目前,您从onPress创建来自TouchableWithoutFeedback的组件。

你需要做像docs这样的事情

render() {
    return (
      <View style={styles.container}>
        <DatePickerIOS
          date={this.state.chosenDate}
          onDateChange={this.setDate}
        />
      </View>
    )
  }

您需要隐藏/显示状态布尔值才能关闭。在不知道你的Android代码的情况下,我怀疑它就像弹出模式一样。

另一种解决方案是使用像react-native-modal-datetime-picker这样的软件包,它在iOS和Android之间具有相同的界面

© www.soinside.com 2019 - 2024. All rights reserved.