2017-03-10 16 views
2

還元型を使用しています。私は状態から入力フィールドに初期値を示しています。 リセットをクリックすると、入力フィールドにはまだ初期値が表示されます。還元型で初期値をリセットする方法

はどのようにして、入力フィールドをリセットすることができます。

これは私のコードです:

const mapStateToProps = (state) => { 
    return { 
     initialValues: { 
      name:state.userInfo.data.name, 
      email:state.userInfo.data.email, 
      phone:state.userInfo.data.phone, 
      city:state.userInfo.data.city.name, 
     } 
    }; 
} 

これは私が入力フィールドに初期値を呼んでいる方法です。

const renderField = ({ input, label, type, meta: { touched, error } }) => (
    <div> 
     <input className="form-control control_new" {...input} placeholder={label} type={type}/> 
    {touched && ((error && <span>{error}</span>))} 
    </div> 
) 

<Field type="text" {...name} name="name" component={renderField} label="Enter Your Name" /> 

おかげ

答えて

4

ハルシャの答えが正しいですが、あなたはまた、すでに飾られ、フォーム・コンポーネント内から、フォームの名前を知っているthis.props.reset()を呼び出すことができます。

あなたはSimple Exampleに「クリア値」ボタンを行動でそれを見ることができます。

+1

についてcurrent documentationです。フォームは古いinitialValuesを保持し、新しいinitialValuesに切り替えます。 – Mrchief

2
import {reset} from 'redux-form'; 

... 

dispatch(reset('myForm')); // requires form name 
2

TLDR:私は最近、この同じ問題を抱えていたし、作業回答のどれもに、この記事に出くわしたフォーム

enableReinitialize: trueを設定します。最後に解決策を見つけたので、うまくいけば、これは他の人を助けるでしょう。問題は初期値がフォームをリセットするときにリセットされないことです。ここではそれについて尋ねるgithub issueであり、ここではそれこれは、あなたが `initialValues`を渡す場合は動作していないよう

関連する問題