我有一行在单击该视图时显示日期,我想要一个日期选择器弹出并显示。
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
.
你需要做一些像文档说的
render() {
return (
<View style={styles.container}>
<DatePickerIOS
date={this.state.chosenDate}
onDateChange={this.setDate}
/>
</View>
)
}
您需要隐藏/显示此状态布尔值以打开关闭。在不知道您的 Android 代码的情况下,我怀疑这就像一个弹出式模式。
另一种解决方案是使用像react-native-modal-datetime-picker这样的包,它在 iOS 和 Android 之间具有相同的界面
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句