2017-02-01 4 views
2

Ich habe ein Formular, das dem Benutzer erlaubt, eine Menge Dinge wie hinzufügen, löschen, ändern zu tun. Das Formular nimmt eine Reihe von Daten aus dem Zustand als initialValues und ich habe eine Anforderung für eine Schaltfläche "Rückgängig", die alle Änderungen zurück, wie sie waren, wenn initialValues festgelegt wurde.Wie man Formulardaten in `initialValues` zurückversetzt

Gibt es etwas in Redux-Form gebaut, die dies tun können? Wir verwenden v5.3.3

Antwort

0

redux-form auf die Ausgangswerte zurückkehrend wird als aus der Box Feature unterstützt seit Version 6. *

Es ist leicht, in dem Initialize from start Beispiel aus der redux-form Dokumentation zu folgen.

Seit Version 6 * die von redux-form bestanden Requisiten gehören eine reset Funktion müssen die man einfach anrufen:

let InitializeFromStateForm = props => { 
    const { handleSubmit, load, pristine, reset, submitting } = props 
    return (
     <form onSubmit={handleSubmit}> 
     <div> 
      <button type="button" onClick={() => load(data)}>Load Account</button> 
     </div> 
     <div> 
      <label>First Name</label> 
      <div> 
      <Field name="firstName" component="input" type="text" placeholder="First Name"/> 
      </div> 
     </div> 
     <div> 
      <label>Last Name</label> 
      <div> 
      <Field name="lastName" component="input" type="text" placeholder="Last Name"/> 
      </div> 
     </div> 
     <div> 
      <button type="submit" disabled={pristine || submitting}>Submit</button> 
      <button type="button" disabled={pristine || submitting} onClick={reset}>Undo Changes</button> 
     </div> 
     </form> 
    ) 
    } 
+0

Ich weiß, dass Sie Version 5.3.3 gefragt - ich habe die Dokumentation für diese Version überprüft und kann die Reset-Funktion für die Eigenschaften nicht sehen. Es könnte irgendwo da sein - ich fing an, Compiler-Fehler zu treffen, als ich auf diese Version von redux-form downgraded, also nicht zu weit nachforschen. Ich habe jedoch das Gefühl, dass ohne die neueste Version zu aktualisieren, Sie den Rollback selbst codieren müssen. –

+0

Hallo David, danke für die Antwort! Es gibt eine "Reset" -Funktion in 5.3.3, aber es tut nicht, was ich will. In einem tiefen Formular gibt zum Beispiel das Löschen einer Zeile und das Aufrufen von 'reset' die gelöschte Zeile nicht zurück. Tut es das in 6. *? –

+0

@JamieDixon Ich habe es gerade versucht (habe noch nie tiefe Formulare mit dieser Art von Zurücksetzen gemacht) - Ich habe zwei Beispiele zusammengefügt http://redux-form.com/6.5.0/examples/fieldArrays/ und http: //redux-form.com/6.5.0/examples/initializeFromState/ und es scheint zu funktionieren, aber es könnte einfach sein, dass mein Spielbeispiel sich von deinem unterscheidet. Vielleicht ein Beispiel für Ihr Modell und Form, und ich werde ein Spiel haben - mindestens zwei Leute werden es dann anschauen! –

Verwandte Themen