我有一行在点击该视图时显示日期,我想要一个日期选择器弹出并显示。
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作为文本,并且单击视图时日期选择器不会打开。
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之间具有相同的界面