如何在没有<field>元素的情况下手动触发onChange事件?

时间:2016-10-19 13:51:18

标签: redux-form

我有这样渲染的组件:

<MyComponent 
  prop1Value={1} 
  prop1OnChange={this.handleProp1Change}
  prop2Value={2} 
  prop2OnChange={this.handleProp2Change}
/>

因此它在内部包含两个字段/值。我如何将它与redux-form同步? <Field>组件只提供一个值/ onChange对......

尝试这样:

// values comes from getFormValues(...)
<MyComponent 
  prop1Value={values.prop1} 
  prop1OnChange={this.context._reduxForm.change.bind(this.context._reduxForm, 'prop1')}
  prop2Value={values.prop2} 
  prop2OnChange={this.context._reduxForm.change.bind(this.context._reduxForm, 'prop1')}
/>

1 个答案:

答案 0 :(得分:2)

您必须使用connect绑定这些操作。

import { change } from 'redux-form';
import { connect } from 'react-redux';

const ParentComponent = (props) => {
    return <div>
        <MyComponent propOneOnChange={props.change('formName', 'fieldName', 'fieldValue')} />
    </div>
}

export default connect(mapStateToProps, { change })(ParentComponent);