[英]How to fix 'TypeError: moment is not a function' in React?
我尝试降级到 Moment.js 版本 2.24.0,但这并没有解决我的问题。 下面是我的代码。 有什么我做错了吗? 错误指向我的 formatDate function,但我似乎无法确定问题所在。
import moment from 'moment';
class ViewMorePhotos extends Component {
state = {
date: moment(),
photo: ""
};
formatDate = moment => {
let year = moment().year();
let month = moment().month() + 1;
let day = moment().date();
return `${year}-${month}-${day}`;
};
changeDate = dateFromInput => {
this.setState({ date: dateFromInput });
this.getPhoto(this.formatDate(dateFromInput));
};
getPhoto = date => {
fetch( `api-url`)
.then(response => response.json())
.then(photoData => this.setState({ photo: photoData }));
};
render() {
return (
<React.Fragment>
<NavBar />
<DateInput changeDate={this.changeDate} date={this.state.date} />
<Photo photo={this.state.photo} />
</React.Fragment>
);
}
}
这是我收到的错误:
TypeError: moment is not a function
ViewMorePhotos/this.formatDate
src/components/ViewMorePhotos.js:17
14 | };
15 |
16 | formatDate = moment => {
> 17 | let year = moment().year();
| ^ 18 | let month = moment().month() + 1;
19 | let day = moment().date();
20 | return `${year}-${month}-${day}`;
ViewMorePhotos/this.changeDate
src/components/ViewMorePhotos.js:25
22 |
23 | changeDate = dateFromInput => {
24 | this.setState({ date: dateFromInput });
> 25 | this.getPhoto(this.formatDate(dateFromInput));
| ^ 26 | };
27 |
28 | getPhoto = date => {
将您的 function 更改为
formatDate = aDate => {
let m = moment(aDate)
let year = m.year();
let month = m.month() + 1;
let day = m.date();
return `${year}-${month}-${day}`;
};
未经测试,但应该可以工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.