这个问题实属有点坑,项目中首次在Form表单里用DatePicker,初始化时开始传的日期是字符串(如:"20201130")编译后运行一堆报错,如下
TypeError: value.locale is not a function
...
刚开始网上找了一些答案,比如一些博主分享出来的答案: initialValue: [undefined, moment().endOf('month')],它这个是直接放数组里面,第一个下标还加上了undefined,我这边试了还是会继续报错的,还有其它各种答案我试了也是不行的,还是会报错的,估计当时低版本antd是可以
最后传的值除了是momen类型外,外层也不需要包裹数组的,下面是正确传值方法
...
this.props.form.setFieldsValue({
date:moment(),//比如默认当天日期
})
...
render () {
const {form} = this.props;
return (
<Form>
...
<FormItem label='日期'>
{getFieldDecorator('date',{
initialValue: form.getFieldValue('date'),
rules: [{
required: true,
message:'日期不能为空!'
}]
})(
<DetePicker placeholder='请选择日期' format='YYYY-MM-DD'/>
)
}
</FormItem>
...
</Form>
)
}