ReactJS Ant Design - 在 DatePicker 中禁用小于任何默认日期的日期

Posted

技术标签:

【中文标题】ReactJS Ant Design - 在 DatePicker 中禁用小于任何默认日期的日期【英文标题】:ReactJS Ant Design - Disable dates less than any default date in DatePicker 【发布时间】:2019-04-25 22:28:52 【问题描述】:

在 antd framework 上工作,我正在尝试禁用小于给定 defaultDate 的 DatePicker 日期,我无法以任何方式正确设置。情况是说日期选择器的 defaultDate 是 2028-12-20 所有日期都应在此以下禁用..

执行此操作的回调如下

disabledDate = (current) => 
    return current && current < moment().endOf('day');;

其中 current = defaultDate 已提供它不会改变,我不知道如何做到这一点..

我已经创建了一个沙盒here

任何帮助将不胜感激。

谢谢。

【问题讨论】:

请检查这个codesandbox.io/s/p34o4v7wlj,这是你要找的吗? 我更新了一个例子codesandbox.io/s/p34o4v7wlj @EugeneDzhevadov 它现在已禁用所有日期.. 所以,current 是从组件传递的,我的猜测是它总是今天,但是您可以定义一个 default 值而不是 current 并执行任何逻辑更多、更少或相等,但我看到组件显示今天日期 【参考方案1】:

可以通过以下方式完成:

disabledDate(current) 
  let customDate = "2018-11-25";
  return current && current < moment(customDate, "YYYY-MM-DD");

这里是working demo

【讨论】:

太棒了,这似乎工作正常,我当时叫错了方式.. 非常感谢。 比你,但我需要在日历日期应该只在当前日期前 7 天启用 current && current > moment() 禁用未来日期 ;)【参考方案2】:

此外,您可以通过启用可用的日期范围/时段来禁用日期。

npm install date-fns

添加或子天的包裹。

import subDays, addDays  from 'date-fns'

最终代码

<DatePicker 
disabledDate=d => !d || d.isAfter(addDays( new Date(), 7)) || d.isSameOrBefore(subDays( new Date(), 1)) />

希望对你有帮助。

【讨论】:

以上是关于ReactJS Ant Design - 在 DatePicker 中禁用小于任何默认日期的日期的主要内容,如果未能解决你的问题,请参考以下文章

React Design Editor已经开始开发诸如Powerpoint这样的可编辑设计工具的直接操作,我们已经用reactjs,ant.design,fabricjs来开发它

用ant-design在react js中提交后清除表单输入字段值

ReactJs 中的 CSS 模块 + Ant 设计不起作用

Ant Design中的日期组件时间限制

如何在 Next.js 中使用自定义主题配置 Ant Design 并支持 CSS 模块功能

如何在 ReactJS 中预览视频