想给DatePicker一个默认值时,不论填时间戳还是时间格式的字符串都会报错date.clone is not a function
后来仔细看了一下文档,默认值要是moment类型的
于是将默认值的时间戳转化moment,moment(1658386146000),结果就不报错了。
代码如下:
<Form.Item
label="出生日期"
name="date"
style={{ width: '240px' }}
initialValue={moment(1658386146000)}
rules={[
{ required: true, message: '未填写出生日期!' },
]}
>
<DatePicker style={{ width: '160px' }} format={'YYYY/MM/DD'} />
</Form.Item>
官方例子:
import type { DatePickerProps } from 'antd';
import { DatePicker, Space } from 'antd';
import moment from 'moment';
import React from 'react';
const { RangePicker } = DatePicker;
const dateFormat = 'YYYY/MM/DD';
const weekFormat = 'MM/DD';
const monthFormat = 'YYYY/MM';
const dateFormatList = ['DD/MM/YYYY', 'DD/MM/YY'];
const customFormat: DatePickerProps['format'] = value =>
`custom format: ${value.format(dateFormat)}`;
const customWeekStartEndFormat: DatePickerProps['format'] = value =>
`${moment(value).startOf('week').format(weekFormat)} ~ ${moment(value)
.endOf('week')
.format(weekFormat)}`;
const App: React.FC = () => (
<Space direction="vertical" size={12}>
<DatePicker defaultValue={moment('2015/01/01', dateFormat)} format={dateFormat} />
<DatePicker defaultValue={moment('01/01/2015', dateFormatList[0])} format={dateFormatList} />
<DatePicker defaultValue={moment('2015/01', monthFormat)} format={monthFormat} picker="month" />
<DatePicker defaultValue={moment()} format={customWeekStartEndFormat} picker="week" />
<RangePicker
defaultValue={[moment('2015/01/01', dateFormat), moment('2015/01/01', dateFormat)]}
format={dateFormat}
/>
<DatePicker defaultValue={moment('2015/01/01', dateFormat)} format={customFormat} />
</Space>
);
export default App;