我有一个使用 react-date-picker 作为日期组件的 redux 表单,现在在编辑模式下打开表单时,在某些情况下日期字段没有值或者它有一个空白(“”)值。现在在这种情况下,如果我的 react-date-picker 组件找不到任何合适的值来解析它在组件上显示“无效日期”,我尝试传递 null,或者通过设置检查是否没有任何日期或是否它是空白未定义或空值,我用谷歌搜索了很多,但没有找到任何合适的答案。我的代码看起来像这样
我的 redux 表单中的自定义日期选择器组件:
import { _dateField, } from '../../../containers/reduxFormFields/formFields';
<Row>
<Col md={6}>
<FormGroup>
<ControlLabel bsClass="">Actual Start Date</ControlLabel>
<div className="dateTimeSdiv">
<Field name="actualStartDate" component={_dateField} className="form-control" formType="edit" defaultValue={moment(this.props.initialValues.actualStartDate)} />
</div>
</FormGroup>
</Col>
<Col md={6}>
<FormGroup>
<ControlLabel bsClass="">Actual End Date</ControlLabel>
<div className="dateTimeSdiv">
<Field name="actualEndDate" component={_dateField} className="form-control" formType="edit" defaultValue={moment(this.props.initialValues.actualEndDate)} />
</div>
</FormGroup>
</Col>
</Row>
我的日期选择器组件如下所示:
export const _dateField = ({ input, placeholder, defaultValue, className, formType,disabledValue, meta: { touched, error } }) => {console.log('values');console.log(defaultValue)
switch (formType) {
case "edit":
return (
<div className="dateTimeSdiv">
<DateField className={(touched && error) ? className + " error" : className} expandOnFocus={false} dateFormat="YYYY-MM-DD HH:mm:ss" updateOnDateClick forceValidDate defaultValue={defaultValue} minDate={moment()} disabled = {disabledValue}>
<DatePicker {...input} selected={input.value ? moment(input.value) : null} navigation locale="en" forceValidDate highlightWeekends highlightToday weekNumbers={false} weekStartDay={1} todayButton={false}></DatePicker>
</DateField>
{touched && error && <span> {error} </span>}
</div>
);
case "create":
return (
<div className="dateTimeSdiv">
<DateField className={(touched && error) ? className + " error" : className} expandOnFocus={false} dateFormat="YYYY-MM-DD HH:mm:ss" updateOnDateClick forceValidDate defaultValue={moment()} minDate={moment()} disabled = {disabledValue}>
<DatePicker {...input} selected={input.value ? moment(input.value) : null} navigation locale="en" forceValidDate highlightWeekends highlightToday weekNumbers={false} weekStartDay={1} todayButton={false}></DatePicker>
</DateField>
{touched && error && <span> {error} </span>}
</div>
);
}
};
我使用两个单独的组件进行编辑和创建。任何帮助都将是可观的。