2017-02-01 4 views
2

私は、ユーザーが追加、削除、変更などの一連の作業を行うためのフォームを用意しています。このフォームには州からのデータがinitialValuesとして保存されていますが、「取り消し」ボタンが必要な場合は、initialValuesが設定されたときの変更内容をすべて元の状態に戻します。フォームデータを「initialValues」に戻す方法

これを行うことができるredux形式のものがありますか?私たちは、初期値にredux-formを元に戻すv5.3.3

答えて

0

を使用しているバージョン6以降のボックス機能のうち*

としてサポートされていることがredux-formドキュメントからInitialize from start例に従うことは簡単です。バージョン6以降

redux-formから渡された小道具がreset機能を備え*あなたは、単に呼び出す必要があります:

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

私はあなたがバージョン5.3.3についての質問を知っている - 私はそのバージョンのドキュメントをチェックしましたプロパティのリセット機能を見ることができません。それはどこかにあるかもしれません - 私はコンパイルエラーを打つようになりました。私はredux形式のそのバージョンにダウングレードしたので、あまりにも遠すぎて調査しませんでした。しかし、私は、最新バージョンをアップグレードせずに、自分でロールバックをコーディングする必要があると感じています。 –

+0

こんにちはDavid、返信ありがとうございます! 5.3.3には 'reset'関数がありますが、私が望むことはしません。例として、深いフォームでは、行を削除して 'reset'を呼び出すと、削除された行は返されません。それは6でこれをしますか?*? –

+0

@JamieDixon私はちょうどこれを試みたことがあります(前にこの種のリセットで詳細なフォームを作っていない) - 私は、http: //redux-form.com/6.5.0/examples/initializeFromState/これはうまくいくようですが、私の演奏の例があなたのものと違うことがあります。 あなたのモデルとフォームの例を投稿してもいいでしょう。私は演劇をするでしょう - 少なくとも2人はそれを見るでしょう! –

関連する問題