首页 > 解决方案 > 如何用@material-ui/pickers 修复@date-io/moment?TypeError:utils.getDayText 不是函数

问题描述

我看过很多关于这个的帖子。我试过降级“moment”和“date-io/moment”的版本,但没有任何效果。TypeError: utils.getDayText is not a function单击 DatePicker 组件时,我仍然可以看到。有没有人有任何其他建议?

"dependencies": {
"moment": "^2.24.0",
"@date-io/core": "^1.3.6",
"@date-io/moment": "^1.3.6",
"@material-ui/core": "^4.11.0",
"@material-ui/icons": "^4.9.1",
"@material-ui/pickers": "^3.2.10",
...

import moment from 'moment';
import MomentUtils from "@date-io/moment";
import {DatePicker, MuiPickersUtilsProvider} from '@material-ui/pickers';

const [displayDate, setDisplayDate] = useState(new Date());

const handleStartDateChange = async nextStartDate => {
    nextStartDate = moment.utc(nextStartDate).startOf('day');
    ...
    setDisplayDate(nextStartDate);
};

<MuiPickersUtilsProvider libInstance={moment} utils={MomentUtils}>
    <DatePicker
        value={displayDate}
        onChange={newDate => handleStartDateChange(newDate)}
        disableFuture={true}
        autoOk={true}
        fullWidth
      />
</MuiPickersUtilsProvider>

标签: reactjsmaterial-ui

解决方案


我创建了一个新的反应应用程序来测试日期选择器。有效。原来问题是onChange()功能。首先,我使用"@date-io/moment": "^1.3.13". 而且组件应该直接使用状态setDisplayDate()而不是自定义函数handleStartDateChange()


推荐阅读