Ich rende das untenstehende einfache Formular mit redux-form und es funktioniert gut. Jetzt möchte ich den Submit-Button in einer weiteren Situation deaktiviert haben: Wenn eines der Field
einen Fehler hat (d. H. Es ist meta.error
gesetzt).
Wenn ich in die Dokumente blicke, ist es wahrscheinlich nicht möglich, dass das umgebende <form>
weiß, ob seine <Field>
-Komponenten einen Fehler haben. Vielleicht hat irgendjemand eine Idee, wie man es so einfach löst wie disabled={hasErrors || submitting || pristine}
Missbrauche den Zustand nicht, den du nur mit this.props brauchst Für jede setState-Komponente wird noch einmal render
ausgegeben %Vor% Alastair wies mich in die richtige Richtung (Danke dafür!). Ich denke, dies ist einer der Fälle, in denen ein lokaler UI-bezogener Zustand tatsächlich sehr nützlich ist. Also habe ich das SFC in eine Reaktionsklasse umgewandelt. Die Klassen constructor
und componentWillReceiveProps
sehen so aus:
Wenn Sie jetzt this.state.errors
verwenden, um die Schaltfläche deaktiviert zu haben, funktioniert es einwandfrei. Wie Sie sehen können, musste ich die invalid
prop form redux-form verwenden, weil ihre error
prop immer undefiniert war und nicht zu vergessen, sie wieder wahr zu setzen, wenn das Formular gültig ist. Außerdem weiß ich nicht, warum Sie die this
-Referenz in that
in Ihre Antwort kopiert haben. Es würde kein Verhalten ändern, da es immer noch auf dasselbe Objekt zeigt.
Tags und Links reactjs redux react-redux redux-form