【React Native】DatePickerを実装できるライブラリ「@react-native-community/datetimepicker」

今回は、React Native で日付データの入力を行う方法についてです。
React Native にも DatePickerAndroidDatePickerIOS はあったようでしたが、非推奨となっていましたので、代わりに推奨されていた「@react-native-community/datetimepicker」で DatePicker を実装しました。

GitHub のページはこちらから。

GitHub – react-native-datetimepicker/datetimepicker: React Native date & time picker component for iOS, Android and Windows
https://github.com/react-native-datetimepicker/datetimepicker

 

さて実装方法ですが、まず下記のコマンドでライブラリをインストールします。

npm install @react-native-community/datetimepicker --save

インストールが完了したら、下記のサンプルコードを参考にプロジェクトに追加します。
まず、ライブラリのインポートと、Datepicker の値が変わったときに呼び出される関数を定義します。

import DateTimePicker from '@react-native-community/datetimepicker';
changeBirthday(event, selectedDate) {
  this.setState({
    birthday: selectedDate,
    isShowDatePicker: !this.state.isShowDatePicker
  });
}

なお、日付データは state の birthday で管理するようにしています。

あとは、render の return() に下記を追加します。

<Text>{this.state.birthday}</Text>
<Button
  icon={<FontAwesome name="calendar" size={16} />}
  onPress={() => this.setState({ isShowDatePicker: !this.state.isShowDatePicker })} />
{ this.state.isShowDatePicker ?
  <DateTimePicker
    mode="date"
    display="calendar"
    value={this.state.birthday}
    locale="ja-JA"
    onChange={this.changeBirthday} /> : null }

上記のように指定すると、Android の場合はカレンダーが表示され、iOS の場合はスピナーが表示されます。
なお、<DateTimePicker /> をただ追加するだけだと、スピナーもしくはカレンダーが表示されっぱなしになるはずなので、その辺りは上記を参考に、ボタン等をタップしたタイミングで表示/非表示を切り替える処理を追加してください。
処理としては以上です!

実装は簡単だったので、日付データを扱う際はこちらの導入をおすすめします。

 

以上、React Native で DatePicker を実装できるライブラリ「@react-native-community/datetimepicker」のご紹介でした。
ご参考になれば幸いです。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG