ant design 日期月份区间选择

简介: ant design 日期月份区间选择

ant design(3.x) 月份区间的选择

import React, { Component } from 'react';
import { DatePicker } from 'antd';
export default class extends Component {
constructor(props) {
    super(props);
    this.state = {
    monthRange: ''
    }
  }  
 handleChange = value => {
  console.log('value', value); // 无法获取值
    this.setState({ monthRange: value });
  };
  handlePanelChange = (value, mode) => {
    console.log('value, mode: ', value, mode);
    this.setState({
      monthRange: value,
      mode: [mode[0] === 'date' ? 'month' : mode[0], mode[1] === 'date' ? 'month' : mode[1]],
    });
  };
  render() {
    return (
        <div>
            <DatePicker.RangePicker
                placeholder={['开始月份', '结束月份']}
                format="YYYY-MM"
                value={monthRange}
                onOpenChange={(status) => {
                  console.log('status: ', status);
                  if(!isOpen){
                    this.setState({isOpen: true})
                  }
                }}
                renderExtraFooter={() => <div style={{marginLeft: 250}}><Button size="small" type="primary" onClick={()=>this.setState({isOpen: false})}>确定</Button></div>}
                mode={['month', 'month']}
                open={isOpen}
                onChange={this.handleChange}
                onPanelChange={this.handlePanelChange}
              />
        </div>
    );
  }  
}

之前看到又说这样写的:

onOpenChange={(status) => {
              if(status){
                this.setState({isopen: true})
              } else {
                this.setState({isopen: false})
              }
            }}

主要的几个问题,及解决方式。

  1. onChange方法无法触发获取到值,需要换成onPanelChang
  2. 面板的显示隐藏需要open属性进行手动控制
  3. onFocus、onBlur会导致闪开闪关,需要换成onOpenChange
  4. 通过自定义按钮去控制,选择开始和结束月份,再关闭面板

这样就是选择一个开始的月份,或者结束的月份就会导致面板关闭。

后面想着只是通过方法来打开面板,自定义按钮来关闭面板,这样可以清楚地看到我选择完的开始月份和结束月份,然后在点击自定义按钮来关闭,操作上会更好些。

官网上,也有对此说明,详细可以看如下地址。

链接: ant design 官网.

相关文章
|
JavaScript 前端开发 Linux
Node.js 获取文件信息及路径
Node.js 获取文件信息及路径
|
JavaScript
js 使用fetch来上传文件 formdata()
js 使用fetch来上传文件 formdata()
|
前端开发 开发者
类组件(Class component)和 函数式组件(Functional component) 之间有何区别?
类组件(Class component)和 函数式组件(Functional component) 之间有何区别?
389 0
Antd——如何自定义月的选择范围
Antd——如何自定义月的选择范围
360 0
|
前端开发
如何在React Router中进行路由重定向?
如何在React Router中进行路由重定向?
758 57
|
移动开发 JSON JavaScript
一文带你了解和使用webpack(2024年11月)
欢迎来到我的博客!我是瑞雨溪,一名热爱JavaScript和Vue的大一学生。自学前端已有两年半的时间,目前正努力向全栈开发迈进。如果你在我的博客中有所收获,欢迎关注我,我会持续更新更多优质内容。你的支持是我最大的动力!🎉🎉🎉
481 1
一文带你了解和使用webpack(2024年11月)
echarts中使用散点scatter更改颜色却不生效的问题
本文讨论了在ECharts中使用散点图(scatter)时更改颜色不生效的问题。原因是项目中使用了`visualMap`组件,它具有最高的优先级,导致自定义的颜色设置被覆盖。解决方法是在`visualMap`组件中增加`seriesIndex`属性,指定它只对特定的系列(series)生效,从而避免影响散点图的颜色设置。文章提供了详细的代码示例和解决办法。
527 3
|
前端开发 JavaScript
vite中css最佳实践:使用postcss完善项目中的css配置
【8月更文挑战第3天】使用postcss完善项目中的css配置
3970 1
|
JavaScript 前端开发 定位技术
Vue使用地图以及实现轨迹回放 附完整代码
Vue使用地图以及实现轨迹回放 附完整代码
1542 0
Vue使用地图以及实现轨迹回放 附完整代码
|
存储 数据库 开发者
Elasticsearch中的三种分页策略深度解析:原理、使用及对比
Elasticsearch中的三种分页策略深度解析:原理、使用及对比