表題の件について詰まってしまったのでメモとして残しておきます。
1. 必要なパッケージのインストール
まず、MUI の DatePicker を使うために必要なパッケージをインストールします。
以下のコマンドを実行してください。
npm install @mui/x-date-pickers @mui/material @emotion/react @emotion/styled dayjs
2. LocalizationProvider の設定
MUI の LocalizationProvider
を Inertia.js の設定に組み込むために、App
コンポーネントの設定を修正します。
以下は修正後のコードです。
// resources/js/app.jsx
import "./bootstrap";
import "../css/app.css";
import { createRoot } from "react-dom/client";
import { createInertiaApp } from "@inertiajs/react";
import { resolvePageComponent } from "laravel-vite-plugin/inertia-helpers";
import { LocalizationProvider } from '@mui/x-date-pickers';
import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
const appName = import.meta.env.VITE_APP_NAME || "ImprovePartner";
createInertiaApp({
title: (title) => `${title} - ${appName}`,
resolve: (name) =>
resolvePageComponent(
`./Pages/${name}.tsx`,
import.meta.glob("./Pages/**/*.tsx")
),
setup({ el, App, props }) {
const root = createRoot(el);
// LocalizationProvider を Inertia.js の App コンポーネントに組み込む
root.render(
<LocalizationProvider dateAdapter={AdapterDayjs}>
<App {...props} />
</LocalizationProvider>
);
},
progress: {
color: "#4B5563",
},
});
3. DatePicker コンポーネントの使用
次に、DatePicker コンポーネントをページ内で使用します。
例えば、resources/js/Pages/ExamplePage.jsx
での使用例を以下に示します。
// resources/js/Pages/ExamplePage.jsx
import React, { useState } from 'react';
import { DatePicker } from '@mui/x-date-pickers';
export default function ExamplePage() {
const [selectedDate, setSelectedDate] = useState(null);
return (
<div>
<h1>Example Page</h1>
<DatePicker
label="Select Date"
value={selectedDate}
onChange={(newValue) => setSelectedDate(newValue)}
renderInput={(params) => <TextField {...params} />}
/>
</div>
);
}
以上でMUI の DatePicker を Inertia.js 経由で使用することができます。
上記の手順に従って、適切にインポートとプロバイダーの設定を行えば、DatePicker コンポーネントが期待通りに動作しました。
おかしい箇所などあればご指摘いただけるとありがたいです。
コメント