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 官网.

相关文章
|
4月前
|
Java
利用Java实现月份的天数
利用Java实现月份的天数
78 0
|
JavaScript
js根据月份获取天数和对应的星期demo(整理)
js根据月份获取天数和对应的星期demo(整理)
|
3月前
|
Java
java8日期计算(偏移N周,返回指定星期的日期)
java8日期计算(偏移N周,返回指定星期的日期)
|
4月前
日期工具,校验当年开始年份,结束年份,当月开始日期,结合素日期
日期工具,校验当年开始年份,结束年份,当月开始日期,结合素日期
|
4月前
moment常用操作(日期加减、获取月初月末、季度、年)
moment常用操作(日期加减、获取月初月末、季度、年)
1216 0
|
4月前
|
Python
用Python实现指定日期的日历
用Python实现指定日期的日历
|
4月前
|
存储 JavaScript 前端开发
uniapp获取一周日期和星期
uniapp获取一周日期和星期
157 0
|
JavaScript
vue 根据指定日期 获取日期所在月份的第一天和最后一天
vue 根据指定日期 获取日期所在月份的第一天和最后一天
683 0
|
JavaScript 前端开发 数据格式
Ant Design Vue 日期选择器,绑定的日期和框内不一致,日期格式化,纠正时差
Ant Design Vue 日期选择器,绑定的日期和框内不一致,日期格式化,纠正时差
846 0
Ant Design Vue 日期选择器,绑定的日期和框内不一致,日期格式化,纠正时差
|
前端开发
前端项目实战193-ant design控制只能选择当月得日期RangePicker
前端项目实战193-ant design控制只能选择当月得日期RangePicker
165 0