2016-09-12 6 views
2

2つのフォームがあり、2番目のフォームのフィールドの検証は、最初のフォームのフィールドの値に基づいています。これは、フォームのトップダウンを入力するときに期待どおりに機能します。しかし、最初のフォームで値を変更すると、valuesオブジェクトは検証で更新されません。他のフォームのフィールドに基づくReduxフォームの検証

私の検証機能は、次のようなものになります。

const validate = values => { 
    const errors = {} 
    if (!values.username) { 
    errors.username = 'Required' 
    } else if (values.username.length < values.previous_field.length) { 
    errors.username = 'Your name can't be shorter than the previous field'; 
    } 

    return errors; 
} 

を、私は、有効なユーザ名を記入の上、短い値に前のフィールドを変更すると、ユーザー名フィールドは無効になりません。

+0

は、最初のもののprevious_field'が変更された '後' handleSubmit(NOOP) '第二形態しよう。 – elmeister

+0

ここに答えがない場合は、redux-form githubページで検索したり問題を作成したりすることができます。 –

+0

@elmeister 2番目の値がかわった? –

答えて

0

フォームの名前を変更することにしたので、両方とも同じ名前になります。このようにして値が更新され、あなたが望むようにバリデーションを使用することができます。

両方の形態について、userdataと命名し、そして最初のものは、すべての検証ロジックを有しています

@reduxForm({ 
    form: 'userdata', 
    validate, 
    asyncValidate, 
    asyncBlurFields: ['car_licenceplate', 'user_zipcode'] 
}) 
関連する問題