日期选择器:The value/defaultValue of DatePicker or MonthPicker must be a moment object after `[email protected]`

问题描述:

真是日了狗了
目前在做一个后台管理的项目,祖传代码,React+ts+antd
一个后台管理用vue多好
这还算了,用的antd的版本是3.xxx,现在官网都更新到5.xx的版本了
喔一开始接手项目的时候,我就先升级了下antd
好家伙,一堆报错,这怎么敢改,没那么多时间
于是干净回退到3.xx的版本,版本差异还是很大的

现在遇到的问题是,一个日期选择器,增加数据的时候,就是直接选择,编辑、查看数据的时候,就要给日期选择器直接赋值,后端返回的数据格式是 2023-12-29。这样的,报错了:
日期选择器:The value/defaultValue of DatePicker or MonthPicker must be a moment object after `antd@2.0`_第1张图片

翻译:DatePicker或MonthPicker的值/defaultValue必须是’ [email protected] '后面的moment对象

datepicker只支持moment类型,表单获取数据是string类型引起报错

解决方法

安装moment

npm i moment --save-dev
import moment from 'moment'
this.props.getFundNoticeDetail(record.id).then(res => {
      if (res.code === 0) {
				const reportDateMoment = moment(res.data.reportDate, 'YYYY-MM-DD')
        this.setState({
          rowData: {
			...res.data,
			reportDate: reportDateMoment
		  },
          modalVisible: true,
          onlyRead: true,
          title: '查看基金公告',
        })
      }
    })

不能直接赋值为字符串,要用moment包一下

好,我以为到这就好了,没想到喔测试下
赋值是好了的 特么现在选择日期的时候又不行了
原代码是这样:
日期选择器:The value/defaultValue of DatePicker or MonthPicker must be a moment object after `antd@2.0`_第2张图片
修改为:
日期选择器:The value/defaultValue of DatePicker or MonthPicker must be a moment object after `antd@2.0`_第3张图片

完事!!!!!

你可能感兴趣的:(React,解决问题,javascript,react.js,开发语言)