[英]How to set custom date to DatePicker of react-datepicker using MomentJS?
I have stored dates in database.我在数据库中存储了日期。 I can fetch dates successfully.
我可以成功获取日期。 But when it comes to set any particular date to DatePicker of react-datepicker , I couldn't set that date.
但是当谈到将任何特定日期设置为react-datepicker 的DatePicker 时,我无法设置该日期。
Here is code that I have used for fetching dates and setting state with the value of date.这是我用于获取日期和使用日期值设置状态的代码。
loadAllEvents() {
axios({
method: 'POST',
url: '/api/Account/SelectAllDatesFromDb',
contentType: 'application/json',
data: {},
}).then(function (response) {
if(response!=null){
this.setState({
eventList: response.data
});
this.updateAllDates();
}
else {
this.setState({
eventList: []
});
}
}.bind(this))
.catch(function (error) {
console.log(error);
});
}
UpdateAllDates() function for converting dates using MomentJs使用MomentJs转换日期的 UpdateAllDates() 函数
updateAllDates() {
for (var i = 0; i < this.state.eventList.length; i++) {
var items = this.state.eventList;
items[i].event_date = moment(this.state.eventList[i].event_date).format("DD/MM/YYYY");
this.setState({ eventList: items });
}
}
After getting dates, now I try to set date to datepicker and try to set selected
parameter.获取日期后,现在我尝试将日期设置为 datepicker 并尝试设置
selected
参数。 Here is code:这是代码:
<InputGroup>
<DatePicker
className="form-control"
dateFormat="dd/MM/yyyy"
maxDate={new Date()}
isClearable={true}
selected={this.state.eventList[0].event_date}
onChange={this.handleChange}
disabled={this.state.eventDateBox}
showYearDropdown
showMonthDropdown
/>
When I runs code I get error - TypeError: Cannot read property 'event_date' of undefined
:当我运行代码时,我收到错误 -
TypeError: Cannot read property 'event_date' of undefined
:
Where am I making mistake?我哪里出错了? Is there any other way of setting a date to DateTimePicker with default/custom date?
有没有其他方法可以使用默认/自定义日期将日期设置为 DateTimePicker?
updateAllDates
will be called only after the successfull API call. updateAllDates
只有在成功调用 API 后才会调用。 So by the time the page renders your this.state.eventList[0]
will be undefined.因此,当页面呈现时,您的
this.state.eventList[0]
将是未定义的。
So have a check like the below所以有一个像下面这样的检查
{ this.state.eventList[0] &&
<InputGroup>
<DatePicker
className="form-control"
dateFormat="dd/MM/yyyy"
maxDate={new Date()}
isClearable={true}
selected={this.state.eventList[0].event_date}
onChange={this.handleChange}
disabled={this.state.eventDateBox}
showYearDropdown
showMonthDropdown
/>
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.