Nie można uruchomić narzędzia wyboru daty i materiału


19

Z jakiegoś powodu nie mogę uruchomić selektora dat materiałów . Za każdym razem, gdy datepicker jest renderowany w React, generowany jest następujący błąd:

RangeError: Łańcuch formatu zawiera nieskalowany znak alfabetu łacińskiego n

Utworzyłem stackblitz za pomocą tylko datepicker ( https://stackblitz.com/edit/react-6ma6xd?embed=1&file=index.js ) i nawet tam pojawia się błąd. Co ja robię źle? Myślę, że postępowałem zgodnie ze wszystkimi instrukcjami z przewodnika instalacji.

Link do material-ui / pickers: https://material-ui-pickers.dev/


W międzyczasie widzę też, że zaktualizowali swoją dokumentację.
NewVigilante

1
Miałem ten sam problem. Po tym doświadczeniu mogę już stwierdzić, że droga, która nas czeka, długo korzysta z tych ram.
Mosia Thabo,

Odpowiedzi:




1

Wygląda na to, że w przykładzie materiałów i interfejsów użytkownika używane są następujące wersje zależności (inne niż twoje):

"@date-io/date-fns": "1.0.1",
"material-ui-pickers": "2.1.1",

W twoim przykładzie używasz nowszej wersji @ date-io z przestarzałą wersją pickerów materiałów:

"@date-io/date-fns": "2.0.1",
"@material-ui/pickers": "3.2.8",

Możesz (1) ustawić wersje tak, aby pasowały do ​​przykładu lub (2) użyć najnowszej wersji selektorów materiałów i przeprowadzić formatowanie daty za pomocą funkcji niestandardowej zamiast DateFnsUtils.

Mam nadzieję że to pomoże.


Myślę, że korzystam z najnowszych pakietów. Te, które wysyłasz jako sugestię, wydają się być przestarzałe, których wolałbym nie używać w produkcji. Wszystkie pakiety, z których korzystałem, pochodzą z uruchamiania poleceń w przewodniku instalacji ( material-ui-pickers.dev/getting-started/installation )
NewVigilante,


1

Próbowałem odpowiedzi powyżej, ale to nie zadziałało, ale dały mi wskazówkę co do rozwiązania, będziesz musiał dokonać pełnego obniżenia wersji, jeśli poprzednie odpowiedzi nie działają dla ciebie

npm install @material-ui/pickers@3.2.8
npm install @date-io/date-fns@1.3.13
npm install date-fns@2.8.1

1

Wystarczy użyć momentJS: npm i @ date-io / moment @ 1.x moment

import MomentUtils from '@date-io/moment';

function App() {
  return (
    <MuiPickersUtilsProvider utils={MomentUtils}>

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.