Não é possível fazer o datepicker da interface do usuário de material funcionar


19

Por alguma razão, não consigo fazer com que o datepicker da ui material funcione. Toda vez que o datepicker é renderizado no React, o seguinte erro é gerado:

RangeError: a string de formato contém um caractere do alfabeto latino sem escape n

Eu criei um stackblitz com apenas o datepicker ( https://stackblitz.com/edit/react-6ma6xd?embed=1&file=index.js ) e mesmo assim o erro aparece. O que estou fazendo errado? Acho que segui todas as instruções do guia de instalação.

Link para o material-ui / pickers: https://material-ui-pickers.dev/


Enquanto isso, também vejo que eles atualizaram sua documentação.
NewVigilante 6/01

11
Eu tive o mesmo problema. Depois de experimentar isso, já posso dizer que o caminho que temos pela frente é longo usando essa estrutura.
Mosia Thabo

Respostas:



9

Faça o downgrade do seu pacote para @date-io@^1.3.13

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


1

Parece que o exemplo de material-ui-pickers está usando as seguintes versões de dependência (que são diferentes da sua):

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

No seu exemplo, você está usando uma versão mais recente do @ date-io com uma versão descontinuada do material-ui-pickers:

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

Você pode (1) configurar suas versões para coincidir com o exemplo ou (2) usar a versão mais recente de material-ui-pickers e executar a formatação da data usando uma função personalizada em vez de DateFnsUtils.

Espero que isto ajude.


Eu acho que estou usando os pacotes mais recentes. Os que você envia como sugestão parecem ser os que foram descontinuados, que eu preferiria não usar na produção. Todos os pacotes que usei são da execução dos comandos no guia de instalação ( material-ui-pickers.dev/getting-started/installation )
NewVigilante


1

Eu tentei as respostas acima, não funcionou, mas elas me deram uma pista para a solução, você terá que fazer um downgrade completo se as respostas anteriores não funcionarem para você

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 usar momentJS: npm i @ date-io / moment @ 1.x moment

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

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.