Impossibile far funzionare il datepicker material-ui


19

Per qualche motivo, non riesco a far funzionare il datepicker material-ui . Ogni volta che il datepicker viene visualizzato in React, viene generato il seguente errore:

RangeError: la stringa di formato contiene un carattere alfabetico latino senza caratteri di escape n

Ho creato uno stackblitz con solo il datepicker ( https://stackblitz.com/edit/react-6ma6xd?embed=1&file=index.js ) e anche lì viene visualizzato l'errore. Che cosa sto facendo di sbagliato? Penso di aver seguito tutte le istruzioni della guida all'installazione.

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


Nel frattempo, vedo anche che hanno aggiornato la loro documentazione.
NewVigilante,

1
Ho avuto lo stesso problema. Dopo aver sperimentato questo, posso già dire che la strada che ci aspetta è lunga usando questo framework.
Mosia Thabo

Risposte:



9

Esegui il downgrade del tuo pacchetto a @date-io@^1.3.13

npm i @date-io/date-fns@1.3.13


1

Sembra che l'esempio material-ui-pickers stia usando le seguenti versioni di dipendenza (che sono diverse dalla tua):

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

Nel tuo esempio, stai usando una versione più recente di @ date-io con una versione obsoleta di material-ui-pickers:

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

Puoi (1) impostare le tue versioni in modo che corrispondano all'esempio o (2) utilizzare la versione più recente di material-ui-pickers ed eseguire la formattazione della data utilizzando una funzione personalizzata anziché DateFnsUtils.

Spero che sia di aiuto.


Penso di usare gli ultimi pacchetti. Quelli che invii come suggerimento sembrano essere quelli che sono deprecati, che preferirei non usare in produzione. Tutti i pacchetti che ho usato provengono dall'esecuzione dei comandi nella guida all'installazione ( material-ui-pickers.dev/getting-started/installation )
NewVigilante


1

Ho provato le risposte sopra non ha funzionato ma mi hanno dato indizio sulla soluzione, dovrai effettuare un downgrade completo se le risposte precedenti non funzionano per te

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

Basta usare momentJS: npm i @ date-io / moment @ 1.x moment

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

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.