質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

解決済

1回答

1458閲覧

[Reactカレンダーライブラリ]描画の色を変えたい

aiai8976

総合スコア112

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2020/04/04 02:48

前提・実現したいこと

https://github.com/hernansartorio/react-nice-dates/tree/master/src
上のReactカレンダーライブラリを使用しているのですが、色の変更の仕方がわかりません。
ここ(https://reactnicedates.hernansartorio.com/)で解説されている複数日程を選択できるものがありますが、クリックした時にprimaryの円が日付上に描画されるようになっています。primary以外にsecondaryや他の色を使い分けたいと思っているのですが、どこを探してもそのような記述がありません。
わかる方がいましたらコメントお願いします。

該当のソースコード

sample.js

1import React, { useState } from 'react' 2import { isSameDay } from 'date-fns' 3import { enGB } from 'date-fns/locale' 4import { Calendar } from 'react-nice-dates' 5import 'react-nice-dates/build/style.css' 6// Very rough implementation of multiple date selection 7export default function CalendarExample() { 8 const [selectedDates, setSelectedDates] = useState([]) 9 const modifiers = { 10 selected: date => selectedDates.some(selectedDate => isSameDay(selectedDate, date)) 11 } 12 const handleDayClick = date => { 13 setSelectedDates([...selectedDates, date]) 14 } 15 return ( 16 <Calendar onDayClick={handleDayClick} modifiers={modifiers} locale={enGB} /> 17 ) 18}

Calendar.js

Calendar.js

1import React from 'react' 2import { func, instanceOf, object, objectOf, string } from 'prop-types' 3import { startOfMonth } from 'date-fns' 4import { isSelectable, mergeModifiers } from './utils' 5import useControllableState from './useControllableState' 6import CalendarNavigation from './CalendarNavigation' 7import CalendarWeekHeader from './CalendarWeekHeader' 8import CalendarGrid from './CalendarGrid' 9 10export default function Calendar({ 11 locale, 12 month: receivedMonth, 13 modifiers: receivedModifiers, 14 modifiersClassNames, 15 minimumDate, 16 maximumDate, 17 onMonthChange, 18 onDayHover, 19 onDayClick, 20 weekdayFormat 21}) { 22 const [month, setMonth] = useControllableState(receivedMonth, onMonthChange, startOfMonth(new Date())) 23 24 const modifiers = mergeModifiers( 25 { disabled: date => !isSelectable(date, { minimumDate, maximumDate }) }, 26 receivedModifiers 27 ) 28 29 return ( 30 <div> 31 <CalendarNavigation 32 locale={locale} 33 minimumDate={minimumDate} 34 maximumDate={maximumDate} 35 month={month} 36 onMonthChange={setMonth} 37 /> 38 39 <CalendarWeekHeader locale={locale} weekdayFormat={weekdayFormat}/> 40 41 <CalendarGrid 42 locale={locale} 43 modifiers={modifiers} 44 modifiersClassNames={modifiersClassNames} 45 month={month} 46 onMonthChange={setMonth} 47 onDayHover={onDayHover} 48 onDayClick={onDayClick} 49 /> 50 </div> 51 ) 52} 53 54Calendar.propTypes = { 55 locale: object.isRequired, 56 minimumDate: instanceOf(Date), 57 maximumDate: instanceOf(Date), 58 modifiers: objectOf(func), 59 modifiersClassNames: objectOf(string), 60 month: instanceOf(Date), 61 onMonthChange: func, 62 onDayHover: func, 63 onDayClick: func, 64 weekdayFormat: string 65}

他のソースは以下に掲載されています。
https://github.com/hernansartorio/react-nice-dates/tree/master/src

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

軽くライブラリのソースとドキュメントを見ましたが、2色以上の選択状態はサポートされていないように見えます。
ライブラリの説明にあるのが「A responsive, touch-friendly, and modular date picker library for React.」でdate pickerとなっています。
あくまで、date pickerは「日付を選択するUIパーツ」であってカレンダーのUIではありません。なので、おそらくサポートされていないと思います。

質問にあるよう複数の日付を扱うカレンダーを探しているのであれば、カレンダー用に作られたUIライブラリを使うか自作をするのがよさそうです。

投稿2020/04/04 12:10

mottox2

総合スコア299

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aiai8976

2020/04/06 02:19

回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問