我在react-redux应用程序中使用react-datepicker模块,我使其与redux形式兼容,如下所示:
const MyDatePicker = props => (
<div>
<DatePicker
{...props.input}
dateFormat="DD-MM-YYYY"
selected={props.input.value
? moment(props.input.value, 'DD-MM-YYYY')
: null}
placeholderText={props.placeholder}
disabled={props.disabled}
/>
{
props.meta.touched && props.meta.error &&
<span className="error">
{ props.intl.formatMessage({ id: props.meta.error }) }
</span>
}
</div>
);
问题是我不知道如何在我的模块中添加默认值。此默认值必须是今天。关于如何处理这个的任何想法?
答案 0 :(得分:2)
您可以在mapStateToProps
阶段指定初始表单值:
const mapStateToProps = state => {
return {
initialValues: {
date: moment()
} // Use the `initialValues` property to set your initial data
};
}
这也在这里解释:http://redux-form.com/6.6.3/examples/initializeFromState/
答案 1 :(得分:2)
变化:
selected={props.input.value
? moment(props.input.value, 'DD-MM-YYYY')
: null}
t0
selected={props.input.value ? moment(props.input.value, 'DD-MM-YYYY') : moment()}
const MyDatePicker = props => (
<div>
<DatePicker
{...props.input}
dateFormat="DD-MM-YYYY"
selected={props.input.value ? moment(props.input.value, 'DD-MM-YYYY') : moment()}
placeholderText={props.placeholder}
disabled={props.disabled}
/>
{
props.meta.touched && props.meta.error &&
<span className="error">
{ props.intl.formatMessage({ id: props.meta.error }) }
</span>
}
</div>
);
答案 2 :(得分:1)
您应该使用moment(dt).format()
格式化日期
const MyDatePicker = props => {
var date = new Date();
var todayDate = moment(date).format('DD-MM-YYYY');
return (
<div>
<DatePicker
{...props.input}
dateFormat="DD-MM-YYYY"
selected={props.input.value
? moment(props.input.value).format('DD-MM-YYYY')
: todayDate}
placeholderText={props.placeholder}
disabled={props.disabled}
/>
{
props.meta.touched && props.meta.error &&
<span className="error">
{ props.intl.formatMessage({ id: props.meta.error }) }
</span>
}
</div>
);
}