antd 使用datepicker数据提交时,格式化

博客介绍了如何封装一个自定义的MyDatePicker组件,以解决在Ant Design的Form表单中使用DatePicker组件时,日期格式化不便的问题。通过创建transformMoment函数,可以方便地将日期转换为服务器所需的格式。在新的组件中,用户只需提供showTime和serverFormat属性,即可自动处理日期格式。这个封装减少了代码重复,提高了代码复用性。
摘要由CSDN通过智能技术生成

form表单中,使用datepicker组件,官方的案例,在form的commit方法中,对时间类型的使用format进行格式化,但是不方便:1)需要确切的知道form.item的name值;2)如果时间类型比较多,需要挨个儿格式化

自己封装一个datepicker

// MyDatePicker.tsx
import React from 'react';
import { DatePicker } from 'antd';

/**
 * date类型的数据,查询时直接格式化数据
 * @param myMoment
 * @param serverFormat
 * @returns
 */

const transformMoment = (myMoment, serverFormat) => {
  myMoment.toJSON = function () {
    serverFormat = serverFormat || 'x';
    let value = myMoment.format(serverFormat);
    if (serverFormat === 'x') {
      value = parseInt(value);
    }
    return value;
  };
  return myMoment;
};

const MyDatePicker = (props) => {
  const serverFormat = props.serverFormat;
  const oldChange = props.onChange;
  const newProps = {
    ...props,
    onChange: (date, dateStrings) => {
      transformMoment(date, serverFormat);
      oldChange(date, dateStrings);
    },
  };
  return <DatePicker {...newProps} />;
};

export default MyDatePicker;

使用:

<MyDatePicker
   placeholder='date'
   showTime={true/false}
   serverFormat={`YYYY-MM-DD${true/false ? ' HH-mm-ss' : ''}`}
 />

参考
2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值