我已经创建了一个只有日期选择器的 stackblitz (https://stackblitz.com/edit/react-6ma6xd?embed=1&file=index.js),但是即使在那里也会出现错误。我做错了什么?我认为我按照安装指南中的所有说明进行了操作。RangeError: 格式字符串包含未转义的拉丁字母字符
n
链接到 material-ui/pickers: https://material-ui-pickers.dev/
我已经创建了一个只有日期选择器的 stackblitz (https://stackblitz.com/edit/react-6ma6xd?embed=1&file=index.js),但是即使在那里也会出现错误。我做错了什么?我认为我按照安装指南中的所有说明进行了操作。RangeError: 格式字符串包含未转义的拉丁字母字符
n
我遇到了同样的问题,在 Github 的问题列表中找到了这个解决方法:
https://github.com/mui-org/material-ui-pickers/issues/1440 所以我安装了 "@date-io/date-fns": "^1.3.13",然后问题得到了解决。
将您的软件包降级到@date-io@^1.3.13
npm i @date-io/date-fns@1.3.13
只需使用momentJS: npm i @date-io/moment@1.x moment
import MomentUtils from '@date-io/moment';
function App() {
return (
<MuiPickersUtilsProvider utils={MomentUtils}>
我尝试了上面的答案,但它们没有起作用,不过它们给了我解决方案的线索。如果之前的答案对你不起作用,你将不得不进行完全降级。
npm install @material-ui/pickers@3.2.8
npm install @date-io/date-fns@1.3.13
npm install date-fns@2.8.1
您需要从官方网站安装以下内容。
npm i @date-io/date-fns@1.x date-fns
然后按照https://material-ui-pickers.dev/getting-started/installation中的说明进行操作。
看起来material-ui-pickers示例使用了以下依赖版本(与您的不同):
"@date-io/date-fns": "1.0.1",
"material-ui-pickers": "2.1.1",
"@date-io/date-fns": "2.0.1",
"@material-ui/pickers": "3.2.8",
import DateFnsUtils from '@date-io/date-fns'
之前先导入 import 'date-fns'
;即:import 'date-fns'
import DateFnsUtils from '@date-io/date-fns';
那是因为你安装了 @date-io@2.* ,可能会看到以下错误:
Uncaught RangeError: 格式字符串包含未转义的拉丁字母字符 n
你需要降级到 @date-io@^1.3.13。
这是由于Material UI Pickers v3与@date-io存在冲突,您可以访问官方网站。
如果你像我一样为此编写了包装器,那么你应该检查其他的props。我因错误地将Date.now()
作为标签属性发送而收到了此错误,因此它可能与你的format
或@date.io/date-fns
无关。