React JSでの作業にかなり時間がかかりました。コンポーネント状態の一部である配列にアイテムをプッシュする際に問題があります。React JS状態で配列をプッシュ/更新する
私が起こそうとしているのは、コンポーネントが現在の月と次の2ヶ月間に毎日リストするように状態(allDays配列)を更新するときです。私はちょうど空の配列を取得しています。私はループをチェックして、それは日付を出力している、彼らはちょうど配列にプッシュされていない。
私の現在JavaScriptがある:
class CalendarDisplay extends React.Component {
constructor(props) {
super(props);
this.state = { allDays: [] };
}
findDays =() => {
var self = this;
var currentDate = new Date();
var mFormat = currentDate.getFullYear() + '-' + (currentDate.getMonth() + 1) + '-01';
var startBookingDate = moment(mFormat);
var endBookingDate = moment().add(2, 'M').endOf('month');
var currentDate = moment(startBookingDate);
while (currentDate <= endBookingDate) {
self.setState({
allDays: self.state.allDays.concat(moment(currentDate).format('YYYY-MM-DD'))
});
currentDate = moment(currentDate).add(1, 'days');
}
}
componentDidMount =() => {
this.findDays();
console.log(this.state.allDays);
}
render =() => {
return (
<div>Please See the Console Log</div>
)
}
}
ReactDOM.render(
<CalendarDisplay />,
document.getElementById('app')
);
は、ここで問題のJS Fiddleです。
私はStack Overflowに関する他の回答を読んできましたが、この問題ではうまくいかないようです。私は現在、成功せずにconcatテクニックを使用しようとしています。
助けがあれば助かります。
この回答をいただきありがとうございます。 – SWC
@SWCこれが解決したら、それを正しいとマークしてください:) – Deckerz
それを受け入れるのに2分待たなければならないと言っています。できるだけ早くそれを受け入れます。 – SWC