0
我正在尝试使用React Native的DatePickerAndroid
。但我想在组件的初始加载时显示它。但问题是,DatePickerAndroid
是promise
(see docs),我不能在初始渲染时加载它。如何在初始加载React Native组件时呈现诺言
因此,我有什么是:
render(){
let datePicker = <DatePickerIOS date={this.state.selectedValue} mode="date" timeZoneOffsetInMinutes={this.state.timeZoneOffsetInHours * 60} onDateChange={(date) => { this.setState({selectedValue: date})}} />;
if (Platform.OS === "android"){
datePicker = this.showAndroidDatePicker()
}
return(
<View>
{datePicker}
</View>
)
}
哪里showAndroidDatePicker
功能如文档:
showAndroidDatePicker = async() => {
try {
const {action, year, month, day} = await DatePickerAndroid.open({
date: this.state.selectedValue
});
if (action !== DatePickerAndroid.dismissedAction) {
var date = new Date(year, month, day);
this.setState({selectedValue: date.toLocaleDateString()});
}
}catch ({code, message}) {
console.warn('Cannot open date picker', message);
}
};
但是当我在android
运行它,我得到大红色屏幕的错误:
对象作为React Child无效(找到:带键的对象({_45, _81,_64,_54})。 ......
任何想法如何处理它?