javascript - 如果没有值显示默认日期 - 日期选择器 - ReactJs

标签 javascript reactjs react-datepicker

我正在使用 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}
       />

)

最佳答案

这实际上不是默认值问题,您只需检查从 onChange 方法传递的 argument 是否包含某些值。

handleStartDate = date => {
  // When you delete the input value "date" will return null
  // So if no values, just do nothing
  if (!date) return

  //...

}

handleEndDate也是如此

Edit react-datepicker-start-end-example

<小时/>

另外,如果您尝试做一些日期选择器范围,我想您可能会发现 @y0c/react-datepicker更有用。这是一个codeSandbox示例

关于javascript - 如果没有值显示默认日期 - 日期选择器 - ReactJs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60061758/

相关文章:

javascript - react : How to show message when result is zero in react

javascript - 将 react-datepicker css 加载到 jsx 文件中的问题

javascript - 类方法调用作为参数存储的另一个类的方法

javascript - 当只需要片段时在 jQuery 中拉取页面

javascript - 使用 Three.js 和 dat.gui 制作动态文本

javascript - 显示/隐藏弹出窗口的性能差异。 react

java - 在后端使用 firebase + spring 登录

javascript - 无法在nw.js(以前的node-webkit)中设置https代理

javascript - React js日期选择器的多个实例