首页 > 解决方案 > 在 React 中使用 NPM Moment.js 出现问题:moment__WEBPACK_IMPORTED_MODULE_2__format 不是函数?

问题描述

编辑:我现在使用 dateFns (date-fns.org) 解决了我的问题,但我也很想知道如何在这里使用 Momentjs。

我已经创建了一个应用程序,create-react-app并正在尝试使用某种格式将当前数据转换为字符串。但是,我收到以下错误

moment__WEBPACK_IMPORTED_MODULE_2__format 不是函数

当我尝试运行此代码时

import moment from 'moment'

 const today = moment().calendar().format('DD-MM-YYY')
 const tomorrow = moment().add(1, 'days').calendar().format('DD-MM-YYY')
 this.setState({checkin:today,checkout:tomorrow})

我做了一些谷歌搜索,发现了像https://github.com/moment/moment/issues/4229这样的页面,其中一个建议是尝试

import * as moment from 'moment'

但这也无济于事。

我也试过

import * as moment from 'moment/moment'

这是另一个建议,但它也没有奏效。

即使只是打电话

moment.format('DD-MM-YYY')

抛出同样的错误。

package.json有这些依赖项

"dependencies": {
    "moment": "^2.24.0",
    "react": "^16.8.6",
    "react-datetime": "^2.16.3",
    "react-dom": "^16.8.6",
    "react-scripts": "3.0.1"
  },

我不知道如何前进。非常感谢任何帮助!

标签: javascriptnode.jsreactjswebpackmomentjs

解决方案


尝试这个:

 const today = moment(moment().calendar()).format('DD-MM-YYY')
 const tomorrow = moment(moment().add(1, 'days').calendar()).format('DD-MM-YYY')

我假设这.calender()将返回 a string,如果我们需要将其解析为特定格式,则需要将其作为参数传递给另一个moment实例,然后应用format到它。


推荐阅读