Ich habe eine grundlegende ES6 react App und versuche MomentJS zu verwenden, um einige Daten zu manipulieren. Aus irgendeinem Grund halte ich month.add is not a function
Daten manipulieren Momentjs in ReactJS
Zur Zeit der Code immer ich habe, ist dies:
export default class CalendarApp extends React.Component {
constructor() {
super();
this.state = {
currentDate: Moment().format(),
month: Moment().format('MMMM'),
year: Moment().format('YYYY')
}
// Bind Methods to this
this.previousMonth = this.previousMonth.bind(this);
this.nextMonth = this.nextMonth.bind(this);
}
previousMonth() {
let month = this.state.month;
month.add(-1, 'months');
this.setState({
month: month
})
}
nextMonth() {
let month = this.state.month;
month.add(1, 'months');
this.setState({
month: month
})
}
render() {
return (
<div className="calendar">
<div className="calendar-container" style={ hideCalendar }>
<caption>
<button className="previous-month" onClick={ this.previousMonth }>Prev</button>
<button className="next-month" onClick={ this.nextMonth }>Next</button>
<div className="calendar-month">
<span>{ this.state.month } { this.state.year }</span>
</div>
</caption>
</div>
</div>
)
}
}
ich verschiedene Versionen der Einstellung des Anfangszustands mit Moment().month()
usw., aber nichts scheint zu funktionieren versucht haben. Jede Hilfe würde sehr geschätzt werden.
Vielen Dank für Ihre Antwort. Wenn ich nur ein Objekt im Zustand erstellen würde, zum Beispiel currentDate, wäre es dann möglich, später this.state.currentDate.format ("MMMM") '? –
Ja, es ist möglich. Sie würden nur den HTML-Code aktualisieren. –
Ja, Sie können, obwohl die aktuelle Zeit wahrscheinlich zum Zeitpunkt der Erstellung des Objekts genommen wird, anstatt, wenn Sie ein .format darauf tun - wahrscheinlich kein Problem, aber es lohnt sich, daran zu denken –