我已经尝试降级到 Moment.js 版本 2.24.0,但这并没有解决我的问题。下面是我的代码。有什么我做错了吗?错误指向我的 formatDate 函数,但我似乎无法查明问题。
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 => {
答案 0 :(得分:0)
将您的功能更改为
formatDate = aDate => {
let m = moment(aDate)
let year = m.year();
let month = m.month() + 1;
let day = m.date();
return `${year}-${month}-${day}`;
};
未测试但应该可以工作。