Javascript 如果没有值,则显示默认日期-date picker-ReactJs

Javascript 如果没有值,则显示默认日期-date picker-ReactJs,javascript,reactjs,react-datepicker,Javascript,Reactjs,React Datepicker,我正在用react datepicker找到解决方法,在我删除输入日期字段之前,一切都很顺利。这会给我带来一个错误:index.js:372 Uncaught RangeError:无效的时间值。我大概知道错误来自于此,因为没有使用默认日期。所以我的问题是我该如何解决这个问题。下面是我的代码示例: this.state= { startDate: moment().startOf('day').subtract(20, 'days'), endDa

我正在用
react datepicker
找到解决方法,在我删除输入日期字段之前,一切都很顺利。这会给我带来一个错误:
index.js:372 Uncaught RangeError:无效的时间值
。我大概知道错误来自于此,因为没有使用默认日期。所以我的问题是我该如何解决这个问题。下面是我的代码示例:

this.state= {
            startDate: moment().startOf('day').subtract(20, 'days'),
            endDate: moment().startOf('day').add(1,'days'),
}

   handleStartDate = date => {

        this.setState({
            startDate: moment(date).startOf('day')
        }, () => {
            if (moment(date).startOf('day').isAfter(this.state.endDate)) {
                this.setState({
                    endDate: moment(date).startOf('day').add(1,'days')
                })
            }
        });
    }

    handleEndDate = date => {
        this.setState({
            endDate: moment(date).startOf('day').add(1,'days')
        });
    };

...
 return (
      <DatePicker
          id='startDate'
          dateFormat="dd/MM/yyyy"
          defaultValue = {this.startDate}
          selected={this.state.startDate.toDate()}
          onChange={this.handleStartDate}
       />

      <DatePicker
          id='endDate'
          dateFormat="dd/MM/yyyy"
          minDate={this.state.startDate.toDate()}
          selected={this.state.endDate.toDate()}
          onChange={this.handleEndDate}
       />

)

this.state={
startDate:moment().startOf('day')。减去(20,'days'),
endDate:moment().startOf('day')。添加(1,'days'),
}
handleStartDate=日期=>{
这是我的国家({
开始日期:时刻(日期)。开始日期(日期)
}, () => {
if(时刻(日期).startOf('day').isAfter(this.state.endDate)){
这是我的国家({
endDate:moment(date).startOf('day')。添加(1,'days'))
})
}
});
}
handleEndDate=日期=>{
这是我的国家({
endDate:moment(date).startOf('day')。添加(1,'days'))
});
};
...
返回(
)

这实际上并不是一个默认值问题,您只需要检查从
onChange
方法传递的
参数是否包含一些值

handlestardate=date=>{
//删除输入值时,“日期”将返回null
//所以如果没有价值观,就什么也不做
如果(!日期)返回
//...
}
对于
handleEndDate



此外,如果你想做一些日期选择器范围我想你可能会发现更有用。下面是一个例子

事实上,这就是问题所在。干杯,伙计,谢谢你的帮助。我会四处寻找你寄给我的npm包。也许我会试试看!