0

我已经配置了一个包含三个字段的 redux-form,如下所示:

function mapState(state) {
    return {
        initialValues: {
            terms: state.register.toJS().terms.value
        }
    };
};

[map dispatch object here]

export const MyFormContainer = reduxForm({
    form: 'myForm',
    fields: ['email', 'password', 'terms']
}, mapState, mapDispatch)(MyForm);

每个字段都根据文档传播传递的道具,例如 {...email}。terms 复选框包含一个 onChange ,它调用一个 actionCreator 来更新我的 redux 状态:

<input type="checkbox" {...terms} onChange={this.handleTermsToggle.bind(this)}/>

单击复选框时,电子邮件和密码字段都重置为空白,这不是我想要的。

4

1 回答 1

0

原来我是从错误的角度解决问题的。我需要完全删除状态树的那块,而是在我的外部组件中使用 {change} from 'react-redux' 来修改值。

import { change } from 'react-redux'

<button onClick={() => {
  this.props.change('myForm', 'terms' true);
}}>Click Me</button>

... and don't forget to map change to mapDispatchToProps
于 2016-07-04T06:26:18.570 回答