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。解決問題。

以上


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM