antd踩坑:日期选择器的可选日期控制的问题

有一个需求是日期选择需要加一个日期限制。

于是我兴高采烈的加上去了。

// 日期可选判断方法
  disabledDateFunc = current => {
    const { disabledDateArray } = this.state;
    if (disabledDateArray) {
      return (
        current && (current < disabledDateArray[0] || current > disabledDateArray[1])
      );
    } else {
      return current;
    }
  };

结果发现一个问题:

比如我希望 用户可以选择 4月1日 到4月4日 。

结果 4月4日 也不能选?

后来知道原因了。

日期选择器用的是 moment 库。

当声明 moment 对象的时候,如果只声明日期,没有声明时间,时间就是当前时间(日期当然是声明的日期)。

而当前时间一定是在今天之内的,也就是说当判断的时候,临界值的时间会比当前时间小!

所以最后一天就不能选择了。

解决方法很简单。

// 日期可选判断方法
  disabledDateFunc = current => {
    const { disabledDateArray } = this.state;
    if (disabledDateArray) {
      return (
        current && (current < disabledDateArray[0] || current > disabledDateArray[1].endOf('day'))
      );
    } else {
      return current;
    }
  };

OK。解决问题。

以上

原文地址:https://www.cnblogs.com/foxcharon/p/12696653.html