只需要在范围选择器选择区域显示一个月 antd

Posted

技术标签:

【中文标题】只需要在范围选择器选择区域显示一个月 antd【英文标题】:Need to show only one month in range picker selection area antd 【发布时间】:2020-07-25 20:30:20 【问题描述】:

我正在为我的 react 应用程序使用 antd 日历 RangePicker。我只想在选择时显示一个月的日历下拉菜单,而不是默认的两个月。

<div className="DatePickerBar">
   <RangePicker format="YYYY-MM-DD"
     className="DateInput"
     value=[moment(dateRange.from), moment(dateRange.to)]
     onChange=this.onRangeChange
     allowClear=false
    />
</div>

【问题讨论】:

添加代码框链接/预览会有所帮助! 代码沙盒:wvt2t.csb.app 【参考方案1】:

对于 antd@4 可以使用这个 CSS

.ant-picker-panels > *:first-child button.ant-picker-header-next-btn 
  visibility: visible !important;


.ant-picker-panels > *:first-child button.ant-picker-header-super-next-btn 
  visibility: visible !important;


.ant-picker-panels > *:last-child 
  display: none !important;


.ant-picker-panel-container, .ant-picker-footer 
  width: 280px !important;


.ant-picker-footer-extra > div 
  flex-wrap: wrap !important; 

【讨论】:

【参考方案2】:

第二列总是可以使用 css

.ant-picker-time-panel 
  display:none !important;

【讨论】:

【参考方案3】:

我首先想到的是使用showTime 功能,但重新格式化以排除小时和分钟选择(默认),即:

<div className="DatePickerBar">
   <RangePicker format="YYYY-MM-DD"
     className="DateInput"
     value=[moment(dateRange.from), moment(dateRange.to)]
     onChange=this.onRangeChange
     allowClear=false
     showTime
     format="YYYY/MM/DD"
    />
</div>

【讨论】:

我试过这个,但它显示一个空列,标题有日期,无论如何要删除这个空时间列。 ? 这个沙盒对你有帮助吗:codesandbox.io/s/competent-resonance-7904l?file=/src/App.js? 这不是我需要的确切结果。更好的是我可以完全删除第二列。不过感谢您的建议。

以上是关于只需要在范围选择器选择区域显示一个月 antd的主要内容,如果未能解决你的问题,请参考以下文章

Antd使用timePicker封装时间范围选择器(React hook版)

在 antd 日期选择器中禁用当前日期之前和当前日期 1 个月之后的日期

使用antd自制时间范围选择器

在反应中以编程方式关闭蚂蚁设计范围选择器

修改antd级联选择器(cascader)

Antd-Select组件的深入用法