有一個需求是日期選擇需要加一個日期限制。
於是我興高采烈的加上去了。
// 日期可選判斷方法 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。解決問題。
以上