Сборщики пользовательского интерфейса материалов - выпуск Jalali Calendar - PullRequest
1 голос
/ 16 января 2020

Я использую подборщики 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;

1 Ответ

1 голос
/ 16 января 2020

Странно, что пример теперь работает с "@ date-io / jalaali": "^ 1.3.12", однако между этими двумя версиями нет серьезного различия. Спасибо Алекс за вашу песочницу .

...