TypeError:utils.endOfDay 不是函数

Posted

技术标签:

【中文标题】TypeError:utils.endOfDay 不是函数【英文标题】:TypeError: utils.endOfDay is not a function 【发布时间】:2019-12-28 11:55:19 【问题描述】:

我是 react 新手,在我的项目中使用 material-ui 日期选择器,来自文档 here。在这个我使用moment.js

datetimepicker 中的以下代码

    import React, useState   from 'react';
    import MomentUtils from 'moment';
    import 
        DatePicker,
        TimePicker,
        DateTimePicker,
        MuiPickersUtilsProvider,
      from "@material-ui/pickers";

    function DateTimePickers() 
         const [selectedDate, handleDateChange] = useState(new 
            Date());

          return (
             <MuiPickersUtilsProvider utils=MomentUtils>
             <DatePicker value=selectedDate onChange= 
              handleDateChange />
              <TimePicker value=selectedDate onChange= 
               handleDateChange />
                <DateTimePicker value=selectedDate onChange= 
              handleDateChange />
            </MuiPickersUtilsProvider>
          );
        
    export default DateTimePickers;

但显示错误

TypeError: utils.endOfDay 不是函数 getComparisonMaxDate node_modules/@material-ui/pickers/esm/_helpers/text-field-helper.js:23

  20 |     return date;
  21 |   
  22 | 
> 23 |   return utils.endOfDay(date);
  24 | ;
  25 | 
  26 | var getComparisonMinDate = function 
       getComparisonMinDate(utils, strictCompareDates, date) 

提前致谢。帮我解决这个问题

【问题讨论】:

使用'moment'的导入时刻;请同时添加 package.json 文件。看起来像是安装问题而不是代码问题。 【参考方案1】:

导入错误。应该是:

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

您可以参考工作中的 CodeSandbox 演示:https://codesandbox.io/s/material-demo-h3ke7?fontsize=14

澄清:

date-io 提供了对常见 javascript 日期管理库的抽象。 date-io/moment 只是其中之一。 data-io GitHub 您必须同时安装 moment 和 data-io/moment Material-ui/pickers 完全依赖于 data-io。如果你想使用 material-ui 选择器,你必须安装它。您可以进一步阅读material-ui-pickers GitHub

【讨论】:

但是已经安装了 moment "moment": "^2.24.0",MomentUtils 不在这里面吗? 请参考你的文档链接,那里提到了导入,MomentUtils @ajeeshs - 我在时刻文档中找不到 MomentUtils。即使存在,它也不具备material-ui-pickers依赖的一些功能(比如endOfDay)。 data-io 提供了 material-ui-pickers 需要的所有功能。 是的 :) 我错过了 dat【参考方案2】:

我在日期选择器文档中遇到了同样的问题 https://material-ui-pickers.dev/getting-started/installation

安装你的版本 npm i @date-io/moment@1.x moment

【讨论】:

以上是关于TypeError:utils.endOfDay 不是函数的主要内容,如果未能解决你的问题,请参考以下文章

TypeError:“TypeError:函数名称不是 HTMLButtonElement.onclick (/:2:54) 处的函数”

反应本机获取多标记[未处理的承诺拒绝:TypeError:TypeError:未定义不是对象(评估'this.state.markers.map

Django TypeError - TypeError: issubclass() arg 1 必须是一个类

pyspark:TypeError:'float'对象不可迭代

Python 3.8 TypeError: can't concat str to bytes - TypeError: a bytes-like object is required, not 's

TypeError: key 必须是一个字符串,一个缓冲区或一个对象在 typeError 与 GCP 文件存在