J'ai "configuré un formulaire redux avec trois champs comme suit:
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);
Chaque champ répartit les accessoires transmis conformément à la documentation, par exemple. {...email}. La case à cocher des termes contient un onChange qui appelle un actionCreator pour mettre à jour mon état redux:
<input type="checkbox" {...terms} onChange={this.handleTermsToggle.bind(this)}/>
Lorsque vous cliquez sur la case à cocher, les champs email et mot de passe sont réinitialisés, ce qui n'est pas ce que je veux.
Réponses:
0 pour la réponse № 1Il s’est avéré que j’abordais le problème de lamauvais angle. J'avais besoin de supprimer complètement cette partie de l'arborescence d'état et d'utiliser plutôt {change} de "react-redux" dans mon composant externe pour modifier la valeur.
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