我需要让react-picker组件与redux形式兼容。我知道这不是绝对正确的,但对于我目前的项目,redux形式是不妥当的。但我很难做到。我使用了反应日期选择器,我用这种方式兼容:
import React from 'react';
import { PropTypes } from 'prop-types';
import DatePicker from 'react-datepicker';
import moment from 'moment';
import { injectIntl, intlShape } from 'react-intl';
import 'react-datepicker/dist/react-datepicker.css';
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>
);
MyDatePicker.propTypes = {
input: PropTypes.shape().isRequired,
placeholder: PropTypes.string,
disabled: PropTypes.bool,
meta: PropTypes.shape().isRequired,
intl: intlShape.isRequired
};
export default injectIntl(MyDatePicker);
但是我很难用反应日选择器来做到这一点。任何人都可以帮我实现这个目标吗?
答案 0 :(得分:1)
我在几个月前有一个类似的问题,该项目要求使用redux表单和日期选择器。我得到的解决方案是将日期选择器包装到它自己的组件中,然后将该组件包装在另一个组件中,然后将其用作redux表单中的自定义输入组件。
我想你不会像我一样多次包装,但这个概念应该仍然相似。看看这个问题中的代码,因为它显示了如何将日期选择器与redux-forms结合使用的示例:
How to onFocus and onBlur a React/Redux form field that's connected to React Date Picker?