Ich versuche herauszufinden, wie meine Formularfelder zurückgesetzt werden, wenn der Server mit einer 200-Erfolgsmeldung antwortet. Alle Beispiele scheinen sich darauf zu konzentrieren, die Felder zu löschen, wenn die Übertragung erfolgreich ist (unabhängig von der Serverantwort), aber ich möchte die Felder nicht löschen, wenn eine 400-Antwort vom Server vorhanden ist.Redux-Formular nach Serverantwort zurücksetzen
In meiner Container-Komponente hat ich:
submit = (data) => {
axios.post("/path/to/server", data)
.then((response) => {
//reset form somehow
})
.catch((err) => {
//keep values in form and show error message
})
}
und ich mache das Formular:
<SubscribeForm onSubmit={this.submit} />
In meiner Präsentations-Komponente Ich habe:
let MyForm = props => {
const { handleSubmit } = props;
return (
<form onSubmit={handleSubmit}>
<label htmlFor="email">Email Address:</label>
<Field name="email" component="input" type="text"/>
<input type="submit" value="Submit"/>
</form>
);
}
// Decorate the form component
MyForm = reduxForm({
form: 'myForm',
})(MyForm);
Danke für die detaillierte Erklärung. Ich habe von den Dokumenten nicht gesehen, dass der Versand dem onSubmit zur Verfügung gestellt wurde. – tommyd456