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})。 ......
任何想法如何處理它?