2017-10-17 21 views
0

の関数を受け付けない:Reduxのフォームフィールド検証レベルは、この例以下検証インライン

https://redux-form.com/7.1.1/examples/fieldlevelvalidation/

バリデータは、次のとおり、フィールド名のため

const maxLength = max => value => 
    value && value.length > max ? `Must be ${max} characters or less` : undefined 
const maxLength15 = maxLength(15) 

<Field 
    name="username" 
    type="text" 
    component={renderField} 
    label="Username" 
    validate={[required, maxLength15, minLength2]} 
    warn={alphaNumeric} 
    /> 

検証で変更された場合、maxLength(15)のmaxLength15は機能しません。

検証= {[必要な、maxLengthの(15),, minLength2]}

I "はmaxLengthの(15)" はエラーをスローしないので、検証の作品に別の機能 "maxLength15" を作成する必要がある理由。

答えて

0

はい、基本的にフォームがレンダリングされるたびに新しい関数が作成されるため、render()メソッドの外で検証関数を作成する必要があります。

ドキュメントの状態:Note: if the validate prop changes the field will be re-registered.

だから、インライン関数が再びUNREGISTER_FIELDにフィールドを起こし、その後REGISTER_FIELDコンソールで見ることができます。

関連する問題