当前位置: 首页 > 知识库问答 >
问题:

如何使用MomentJS将自定义日期设置为react DatePicker的DatePicker?

韦原
2023-03-14

我在数据库中存储了日期。我可以成功地获取日期。但是当涉及到将任何特定的日期设置为Report-datepicker的DatePicker时,我无法设置该日期。

下面是我用来获取日期和设置带有日期值的状态的代码。

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);
        });
}

函数,用于使用MomentJs转换日期

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 });    
        }
    }

在获得日期之后,现在我尝试将日期设置为datepicker,并尝试设置所选的参数。以下是代码:

<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
  />

我哪里出错了?有没有其他方法设置日期到DateTimePicker与默认/自定义日期?

共有1个答案

夏宏旷
2023-03-14

updateAllDates只有在成功调用API之后才会调用。因此,当页面呈现您的时this.state.eventList[0]将是未定义的。

因此,请进行如下检查

{ 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
  />
}
 类似资料:
  • 如何使用threeten BP验证自定义格式的日期,如31/02/1985?

  • 我正在使用MPAndroidChart显示一个相对简单的条形图。 有2件事我需要设置,我不知道如何自定义: > 我需要为每个条添加文本,而不是简单的值,每个条本身也有样式。 在每个条的顶部,我需要放置各种类型的可绘制材料来覆盖它的宽度(例如一个条中高度为2dp的蓝色,或另一个条上高度相同的黄色渐变)。 下面是我需要做的一个演示: > 我知道我也可以通过使用添加图标,但这似乎不适用于应该使用整个条形

  • 问题内容: 我正在使用Spring 3.1,并且想使用新的缓存功能。然后,我尝试: 但是我没有找到配置自定义KeyGenerator的方法。任何想法? 问题答案: 好的,我只是找到一种方法来做… 如您所见,我使用AnnotationDrivenCacheBeanDefinitionParser,将配置放入xml中,并且可以::完成! 编辑: 对于Spring> 3.2,可以使用实现CachingC

  • 在像这样的典型Spring Boot应用程序中,我们如何配置它来使用“自定义”日志配置? 例如,在我的应用程序运行的当前环境中,日志正在导致错误,我如何使用其他日志例如:

  • 我正在使用React-Datepicker和MomentJS。但是当我想使用Moment设置starDate时,该值在datepickerfield中给出无效日期。 当我在控制台中记录this.state.start日期时,控制台会显示以下内容:“开始日期: 27-11-2018”,格式为“DD-MM-YYYY”。此格式也用于DatePicker组件。 有人能解释一下为什么它在浏览器中显示无效日期