2017-06-21 20 views
0

React NativeのDatePickerAndroidを使用しようとしています。しかし、私はそれをコンポーネントの初期ロード時に表示したい。しかし問題は、DatePickerAndroidpromisesee 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})。 ......

どのように対処するのですか?

答えて

0

openの結果を実際にレンダリングしようとしましたが、これはドキュメントによってユーザーが選択した内容を示しています。だからあなたはおそらくレンダリング機能にレンダリングしたり、どこにでも置いたりしたくないでしょう。

日付選択ツールを開くためのボタンを追加し、押されたらopenメソッドに電話します。その結果、ユーザーが何を選んだのかがわかります。

関連する問題