javascript - 如果没有值显示默认日期 - date-picker - ReactJs
问题描述
我正在react-datepicker
用index.js:372 Uncaught RangeError: Invalid time value
. 我知道错误可能来自那里,因为没有使用默认日期。所以我的问题是我该如何解决这个问题。这是我的代码示例:
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}
/>
)
解决方案
它实际上不是默认值问题,您只需要检查argument
从onChange
方法传递的是否包含一些值。
handleStartDate = date => {
// When you delete the input value "date" will return null
// So if no values, just do nothing
if (!date) return
//...
}
同样适用handleEndDate
此外,如果您尝试做一些日期选择器范围,我猜您可能会发现@y0c/react-datepicker更有用。这是一个codeSandbox示例
推荐阅读
- elasticsearch - 从 ElasticSearch 查询中的日期字段中提取日期 (yyyyMMdd)
- sql-server - 如何在 Visual Studio Code 中扩大查询结果
- javascript - 如何重置文件输入?
- javascript - 在特定日期显示标签的角度材料日历
- ios - 当我提交带有犰狳的 iOS 应用程序时,BLAS 符号被拒绝为私有(ITMS-90338:非公共 API 使用)
- python - 继续使用 numpy.piecewise 获取此错误以获取分段线性回归
- java - 特定 Linux 服务器上的 REST API 404
- python - 使用管道进行进程间通信
- f# - 如何在 F# 中应用条件成员可见性
- merge - 从两张纸合并从 xlsx 文件到 InDesign