Я использую подборщики Material-UI в своем приложении реакции, и мне трудно заставить работать календарь Jalali пример . Версия пакетов, которые я использую:
"@date-io/jalaali": "^1.3.13",
"@date-io/moment": "^1.3.13",
"@material-ui/core": "^4.8.3",
"@material-ui/icons": "^4.5.1",
"@material-ui/pickers": "^3.2.8",
"moment": "^2.24.0",
"moment-jalaali": "^0.9.1",
"react": "^16.12.0",
"react-scripts": "3.3.0",
"react-dom": "^16.12.0",
Ошибка равна TypeError: utils.getDayText is not a function
для DatePicker, TypeError: utils.getHourText is not a function
для TimePicker и TypeError: utils.getYearText is not a function
для DateTimePicker. Я пытался изменить версию некоторых пакетов, но ничего не произошло.
Редактировать:
Я обнаружил, что проблема в JalaliUtils в <MuiPickersUtilsProvider utils={JalaliUtils} locale="fa">
, но все еще могу не найти решение.
import moment from "moment";
import jMoment from "moment-jalaali";
import React, { useState } from "react";
import JalaliUtils from "@date-io/jalaali";
import {
DatePicker,
MuiPickersUtilsProvider,
} from "@material-ui/pickers";
jMoment.loadPersian({ dialect: "persian-modern", usePersianDigits: true });
function PersianExample() {
const [selectedDate, handleDateChange] = useState(moment());
return (
<MuiPickersUtilsProvider utils={JalaliUtils} locale="fa">
<DatePicker
clearable
okLabel="تأیید"
cancelLabel="لغو"
clearLabel="پاک کردن"
labelFunc={date => (date ? date.format("jYYYY/jMM/jDD") : "")}
value={selectedDate}
onChange={handleDateChange}
/>
</MuiPickersUtilsProvider>
);
}
export default PersianExample;