タイトル通り、React Native でカレンダー機能を実装する際に利用したライブラリ「react-native-calendars」のご紹介です。
初めて使ったライブラリでしたが、実装がとても簡単で、かつ見た目もスタイリッシュなため、かなりおすすめです!
GitHub のページはこちらから。
GitHub – wix/react-native-calendars: React Native Calendar Components 🗓️📆
https://github.com/wix/react-native-calendars
事前準備として、まず下記のコマンドでライブラリをインストールします。
npm install --save react-native-calendars
あとは、使用したい箇所で下記をインポートすれば使用できます。
import { Calendar } from 'react-native-calendars';
カレンダーの描画は下記のようにすれば表示されます。
<Calendar monthFormat={'yyyy年 M月'} onDayPress={this.onDayPress} markingType={'period'} markedDates={{ '2021-02-21': { startingDay: true, color: '#50cebb', selected: true }, '2021-02-22': { color: '#70d7c7', selected: true }, '2021-02-23': { color: '#70d7c7', selected: true }, '2021-02-24': { color: '#70d7c7', selected: true }, '2021-02-25': { endingDay: true, color: '#50cebb', selected: true }, }} />
3行目の onDayPress
で、日付をタップした際に実行したい処理を指定できます。
また、私は使わなかったのですが、onDayLongPress
という、日付を長押し視した時の処理を指定することもできます。
更に、予定がある事を表現する markedDates
というパラメータもあります。
サンプルコードでは 5行目からがそうです。
上記では、markingType
に period
を指定し、○日から×日までの期間の選択を表現することができます。
他にも、単純に日付を円で囲ったり、日付下にドットを表示したりすることもできます。
詳しくは、GitHub のページをご参照ください。
以上、React Native の「react-native-calendars」ライブラリを使ってカレンダーを実装する方法でした。
ご参考になれば幸いです。
【2021年2月26日 追記】
本投稿でカレンダーは表示されますが、英語表記になっています。
カレンダーを日本語化する方法については下記の記事をご参照ください。
【javascript・react】stateの中身を形式別で調べる方法