antd日期动态禁用时分秒, react

其实antd官方已经给出了一个禁用的例子,我们找到这个例子

在这里插入图片描述
禁用时分秒的话我们需要用到disabledTime这个api

这里先看下我写的demo

比如我们的需求是:
选择的时间早于特定时间要禁用

    range = (start, end) => {
      const result = []
      for (let i = start; i < end; i++) {
        result.push(i)
      }
      return result
    }

    const disableTime = moment('2021-02-22') // 特定时间

    disabledDateTime = (date) => { // date是选择的日期, moment对象
      if (date.isBefore(disableTime)) { // 使用moment文档isBefore方法, 判断当选择日期早于特定时间时禁用
        return {
          disabledHours: () => this.range(0, 24).splice(0, 24),
          disabledMinutes: () => this.range(0, 60),
          disabledSeconds: () => this.range(0, 60)
        }
      } else {
        return {}
      }
    }

// render层代码
	<DatePicker
       defaultValue={moment('2021-02-24')} // 组件必须有默认值,disabledDateTime方法一开始才会有date参数,请自己验证	
	   disabledTime={this.disabledDateTime} // 禁用时分秒的方法
	   showTime
	/>

禁用效果大概是这样,不用结合上方逻辑代码去看,因为图中的需求和现在写的需求不一样,咱就大概看个效果
在这里插入图片描述

结语:

如果需求不一样的话,写一下我这个demo,弄清楚disabledTime执行的时机,直接把需求套进去就可以了
如果天数也要禁用的话,直接去antd官方找上方图片的例子,里面有写好的disabledDate方法直接拿来用就可以了

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值