React + Material UI pickers 月曜始まりにしたい時

1 min read読了の目安(約1700字

Material UI pickers のカレンダー表示を月曜始まりにしたかったのですが、公式読んでもぱっと分からなかったので、記事にまとめてみました。

前提/環境

    "@date-io/date-fns": "^1.3.13",
    "@material-ui/pickers": "^3.2.10",
    "date-fns": "^2.17.0",
    "react": "^16.13.1",

コード例

import 設定部分

// date picker
import 'date-fns';
import DateFnsUtils from '@date-io/date-fns';
import { MuiPickersUtilsProvider, KeyboardDatePicker } from '@material-ui/pickers';
import locale from 'date-fns/locale/en-US';
if (locale && locale.options) {
  locale.options.weekStartsOn = 1;
}

Component render部分

        <MuiPickersUtilsProvider utils={DateFnsUtils} locale={locale}>
          <KeyboardDatePicker
            placeholder="2021/02/21"
            value={date}
            onChange={date => changeDate(date)}
            format="yyyy/MM/dd"
          />
        </MuiPickersUtilsProvider>

参考記事

おまけ

日本語化したい時も、少し一工夫が必要みたいで、次の記事が参考になりそうでした。

Material-UI Pickersの日本語化について - blog.beaglesoft.net

また、公式に書いてありますが、pickerの依存関係のライブラリをインストールする時、バージョンの指定をきちんとしないとエラーになるので、要注意です。
npm i @date-io/date-fns@1.x date-fns