Ich habe ein Redux-Formular mit drei Feldern wie folgt konfiguriert:
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);
Jedes Feld verteilt die übergebenen Requisiten gemäß den Dokumenten, z. {...Email}. Das Kontrollkästchen "terms" enthält ein onChange, das einen actionCreator aufruft, um meinen Redux-Status zu aktualisieren:
<input type="checkbox" {...terms} onChange={this.handleTermsToggle.bind(this)}/>
Wenn Sie auf das Kontrollkästchen klicken, werden sowohl die E-Mail- als auch die Passwortfelder auf leer gesetzt.
Antworten:
0 für die Antwort № 1Es stellte sich heraus, dass ich das Problem von derfalscher Winkel Ich musste diesen Teil des Zustandsbaums vollständig entfernen und stattdessen {change} aus "reag-redux" in meiner äußeren Komponente verwenden, um den Wert zu ändern.
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