使用datepicker作為時間錄入表單的, 之前上線的功能本地突然報錯了o(╥﹏╥)o。

時間選擇時報錯,表單提交時value.getTime is not a function
<Col span={12} key={4}>
<FormItem
{...formItemLayout}
wrapperCol={{ span: 13 }}
label='上牌時間'
>
{getFieldDecorator('registerTime', {
initialValue: carInfo.registerTime
? moment(carInfo.registerTime)
: '',
rules: [
{
required: true,
Message: '請選擇上牌時間!'
}
]
})(
<MonthPicker
format='YYYY/MM'
style={{ width: '300px' }}
disabledDate={this.disabledDate}
/>
)}
</FormItem>
</Col>
一看報錯就知道是moment類型的原因,看了下anth的github,果然是這個原因,哎,datepicker只支持moment類型,表單獲取是string類型引起報錯,不知道之前為啥沒報錯,坑。修改如下
<Col span={12} key={4}>
<FormItem
{...formItemLayout}
wrapperCol={{ span: 13 }}
label='上牌時間'
>
{getFieldDecorator('registerTime', {
initialValue: carInfo.registerTime
? moment(carInfo.registerTime)
: '',
rules: [
{
type: 'object', // 控件只支持moment只能object了
required: true,
Message: '請選擇上牌時間!'
}
]
})(
<MonthPicker
format='YYYY/MM'
style={{ width: '300px' }}
disabledDate={this.disabledDate}
/>
)}
</FormItem>
</Col>