日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

antd的timePicker.RangePicker設置結束時間不可早于開始時間

作者:xinxin_csdn 更新時間: 2022-05-10 編程語言

antd當 結束時間小于結束時間時,會將倆個時間置換,不能滿足需求啊

api中disabledTime不知為啥不觸發。。。待解決

利用onCalendarChange方法和disabledHours、disabledMinutes去實現效果

代碼如下

import { TimePicker } from 'antd'

const [disabledHourValue, setDisabeledHourValue] = useState([]) // 不能選擇的小時
const [hourNum, setHourNum] = useState(0)?// 已選擇的時間的 小時數

const [minuteNum, setMinuteNum] = useState(0)  // 已選擇的時間的 分鐘數

const [selectType, setSelectType] = useState() // 已選擇的時間的類型

const disabledHoursFun = () => {

? return disabledHourValue

}
const disabledMinutesFun = selectedHour => {
    let disabledValue = []
    if (selectType === 'start') {
      if (selectedHour === hourNum) {
        for (let i = 0; i < 60; i++) {
          if (i > minuteNum) {
            disabledValue.push(i)
          }
        }
      }
    } else if (selectType === 'end') {
      if (selectedHour === hourNum) {
        for (let i = 0; i < 60; i++) {
          if (i < minuteNum) {
            disabledValue.push(i)
          }
        }
      }
    }
    return disabledValue
}
const dealTimeData = (type, time) => {
    let timeArr = time.split(':')
    let hour = Number(timeArr[0])
    let minute = Number(timeArr[1])
    setHourNum(hour)
    setMinuteNum(minute)
    setSelectType(type)
    let disabledHourArr = []
    if (type === 'start') {
      for (let i = 0; i < 24; i++) {
        if (i > hour) {
          disabledHourArr.push(i)
        }
      }
    } else if (type === 'end') {
      for (let i = 0; i < 24; i++) {
        if (i < hour) {
          disabledHourArr.push(i)
        }
      }
    }
    return disabledHourArr
}
const changeRangeTime = (dates, dateStrings, info) => {
    if (dateStrings[0] === '' && dateStrings[1] === '') {
      setDisabeledHourValue([])
      return
    }
    let startTime = dateStrings[0]
    let endTime = dateStrings[1]
    if (info.range === 'start') {
      if (startTime !== '') {
        let data = dealTimeData('end', startTime)
        setDisabeledHourValue(data)
      }
    } else if (info.range === 'end') {
      if (endTime !== '') {
        let data = dealTimeData('start', endTime)
        setDisabeledHourValue(data)
      }
    }
}



原文鏈接:https://blog.csdn.net/xinxin_csdn/article/details/121343484

欄目分類
最近更新