antd 3X版本下,DatePicker年份选择

虽然在antd的4X版本以后支持了年份和季度的时间选择器,但是项目中版本升级可能遇到很多不兼容的地方,而且没有时间去更改,所有需要对第版本的组建进行更改

import React, {
      Component } from 'react';
import {
      DatePicker,Form, Button } from 'antd';
const FormItem = Form.Item
class DatePickers extends Component {
     
  state =  {
     
    isopen: false,
    time: null
  }

  submit=()=>{
     
    this.props.form.validateFields((err, values) => {
     
        if (!err) {
     
          console.log('点击提交', values.test);
          let t = new Date(values.test)
          console.log(t.getFullYear())
        }
      });
  }

  handlePanelChange = (value) => {
         
    console.log(">>>>>", value)    
    this.setState({
           
      time: value,      
      isopen: false    
    }) 
    const {
      setFieldsValue } = this.props.form
    setFieldsValue({
     
        test: value
    })
  } 
 
  handleOpenChange = (status) => {
         
    // console.log(status)    
    if(status){
           
        this.setState({
     isopen: true})    
    } else {
           
        this.setState({
     isopen: false})    
    }  
  }  

  clearValue = (value) => {
         
    this.setState({
           
        time: null    
    })  
    console.log(">>a>>>", value) 
    const {
      setFieldsValue } = this.props.form
    setFieldsValue({
     
        test: value
    })
  }
  
  render() {
     
    //   const { getFieldProps, name } = this.props
      const {
      getFieldDecorator, getFieldProps, setFieldsValue  }  = this.props.form;

    return (
        // 
<Form> <FormItem> { getFieldDecorator('test', { })( <DatePicker // value={this.state.time} open={ this.state.isopen} mode="year" placeholder='请选择年份' format="YYYY" onOpenChange={ this.handleOpenChange} onPanelChange={ this.handlePanelChange} onChange={ this.clearValue} allowClear={ false} /> ) } </FormItem> <Button onClick={ this.submit }>sub</Button> </Form> ); } } const Index = Form.create()(DatePickers) export default Index

你可能感兴趣的:(javascript)