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/

NewVigilante
źródło
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:

19

Miałem ten sam problem, znalazłem to w kwestiach github:

https://github.com/mui-org/material-ui-pickers/issues/1440 więc zainstalowałem „@ date-io / date-fns”: „^ 1.3.13” i działałem

Michaud
źródło
To wszystko, dzięki! Powinny naprawdę zaktualizować tam dokumentację lub przynajmniej umieścić tam komentarz, dopóki nie zostanie naprawiony.
NewVigilante
9

Zmień pakiet na @date-io@^1.3.13

npm i @date-io/[email protected]

Sułtan Aslam
źródło
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.

Jeff Tsui
źródło
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
Pedro JR
źródło
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}>
Gleb Dolzikov
źródło