React NativeのDatePickerAndroid
を使用しようとしています。しかし、私はそれをコンポーネントの初期ロード時に表示したい。しかし問題は、DatePickerAndroid
がpromise
(see docs)であり、初期レンダリング時にロードできないということです。React Nativeコンポーネントの初期ロード時に約束をレンダリングする方法
このように、私が持っているものは次のとおりです。
showAndroidDatePicker
関数はドキュメントのようである
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 = 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
上でそれを実行すると、私はエラーのある大きな赤い画面が出ます:
オブジェクトはリアクションの子としては無効です(見つかったオブジェクト:{_45、 _81、_64、_54})。 ......
どのように対処するのですか?