javascript – 未捕获的TypeError:_moment2.default.date不是React app中的函数

前端之家收集整理的这篇文章主要介绍了javascript – 未捕获的TypeError:_moment2.default.date不是React app中的函数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

当我尝试在构造函数,componentWillMount或componentDidMount中使用Moment.js中的日期时,我收到错误

Uncaught TypeError: _moment2.default.date is not a function

我没有在npm之外使用Webpack或任何特定的构建工具.这是我的相关代码

import React from 'react';
import Moment from 'moment';

export default class Date extends React.Component {
  constructor() {
    super();
    this.state = { day: '',month: '',year: '',weekday: ''
                 };
  }

  componentDidMount() {
    this.setDate();
  }

  setDate() {
    this.state.day = Moment.date();
    this.state.month = Moment.format('MMM');
    this.state.year = Moment.year();
    this.state.weekday = Moment.format('dddd');
  }

这是因为Moment在渲染组件时还没有完全加载,或者是其他什么东西?我怎样才能解决这个问题?

当我在render()函数调用Moment时,我没有收到此错误.但是,我需要状态中的日期信息,以便我可以根据日期更新其他应用程序组件.

最佳答案
你设置状态的方式不合适,并使用这样的时刻:Moment().,试试这个:

setDate() {
      this.setState({
           day : Moment().date(),month : Moment().format('MMM'),year : Moment().year(),weekday : Moment().format('dddd')
      });
  }

猜你在找的JavaScript相关文章