Gewusst wie: löschen Sie einige Felder im Formular - Redux-Form
Ich bin das arbeiten auf einer Seite, die viele Eingabe-Validierungen und logischer Bindungen auf und jeder iteration die Größe der Seite wächst. So dass ich haben, um eine schöne zu finden und skalierbare Lösung.
Vorstellen, wenn Benutzer wählen Sie einen Wert aus der dropdown-als 'A', müssen einige Felder deaktiviert werden, werden einige Felder gelöscht werden müssen und einige Felder initilized mit default-Werten. Ändern kann ich einem verwandten Bereich (nicht Gültigkeitsregel wie regexp oder Länge constrait) Wert mit einigen wenig code wie
this.props.dispatch(change('xForm','xField','xValue' ))
Mein problem ist, dass wenn ich löschen müssen mehrere Felder,
Es immer blockiert, von meinem Validierung der Methode und klare Bedienung ist fehlgeschlagen ( Hinweis : ich soll so sein, aber nicht so)
.
Ich habe versucht, einige Strategien, wie unten aber y -, z -, w-Felder sind text, und es löste Gültigkeitsregel und hanled Fehler. So, dass die Eingaben haben immer noch die alten Werte nicht gelöscht werden, diejenigen.
//Clear
this.props.dispatch(change('xForm','yField','' ))
this.props.dispatch(change('xForm','zField','' ))
this.props.dispatch(change('xForm','wField','' ))
Was sind die besten Praktiken für die clear-Eingänge oder weisen Sie einige Werte für die Eingänge in der redux-form für Seiten, die sehr abhängig Eingänge.
Recherchiere ich seit 2 Tagen, aber ich konnte keine optimale Lösung. (redux normalizer, redux form utils usw.)
Dank.
- sind Sie mit immutable.js?
- Noch nicht anoop !
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wow, das ist eine komplizierte Logik. Der absolut ideale Weg wäre, um die
plugin()
- API änderung der Werte in der reducer, wenn Ihr den anderen Bereich ändern sich die Werte. Es ist eine komplizierte API, weil Sie die totale Kontrolle um zu versauen Dinge in der reducer, aber Sie haben eine komplizierte Anforderung.Jedoch Entsendung von drei
change()
Aktionen, wie Sie sagten, Sie tun, sollte auch funktionieren. Vielleicht möchten/müssenuntouch()
die Felder auch, wenn SieRequired
Validierung der Nachrichten, die Sie nicht anzeigen wollen, noch.Können Sie näher erläutern, was das bedeutet, zeigen einen stack-trace oder der Konsole Fehler-Ausgabe?
Dieser arbeitete für mich:
Mithilfe der unten, löscht es die jeweils mehrere Felder und löscht auch den Fehler, wenn alle für die jeweiligen Felder.
Gemeinsame Funktion zum zurücksetzen mehrere Felder.
Verwenden Sie die oben genannten gemeinsamen Funktion,
gibt.
Schauen wir uns http://redux-form.com/6.0.0-alpha.4/docs/faq/HowToClear.md/
Für die ganze form, die wir verwenden können 4 Methoden:
A) können Sie das plugin benutzen () - API zu unterrichten, dass die redux-form reducer zu reagieren, die Aktion wird ausgelöst, wenn Ihre Einreichung erfolgreich war.
B) Einfach unmounten Sie Ihr Formular-Komponente
C) Sie können diesen Aufruf.Requisiten.resetForm() aus dem inneren Ihrer form nach Ihrer Vorlage erfolgreich.
D) Sie können Versand-reset() von jeder angeschlossenen Komponente
Versuchen, die dispatch-Funktion in meta-Objekt mit folgender Nutzlast:
Sollte den trick tun für jedes Feld, das Sie wollen.
Fand ich einen besseren Weg für diese,
Wir können initialisieren Aktion Ersteller der RF.
Wenn die keepDirty parameter true ist, werden die Werte der derzeit schmutzigen Felder wird beibehalten, um zu vermeiden überschreiben durch den Benutzer bearbeitet werden.
klar mehrere Felder