It`saは奇妙な振る舞いをビットが、私の検証:)関数を返す関数は、reduxフォームフィールドレベルの検証では機能しません。
で起こっていただきました!私は実際に私は、フィールドレベルの検証
export const confirm = (valueToConfirm, message) => (value, allValues) => {
if (value !== allValues[valueToConfirm]) {
return message;
}
return undefined;
};
そして、そのような使用を持って把握することはできません
<Field
type="email"
name="confirmEmail"
component={TextInput}
validate={[required, email, confirm('email', 'Bla-bla-bla')]}
/>
thatsは実際には、別の検証が失敗した場合にのみ機能します。だから、ユーザーの入力がすべてのフィールドを修正した場合、単にEメールと電子メールが一致しない場合 - は検証エラーではありません!
しかし、私がバリデーションを変更した場合、関数を返す関数ではありません。それは機能します。
export const confirmEmail = (value, allValues) => {
if (!value || value !== allValues.email) {
return 'Bla-bla-bla';
}
return undefined;
};
P.S.すべてのフィールドレベル検証で同じです。たとえば、動的minLength
検証です。
質問では、あなたは 'confirm'と' confirmEmail'を使います。確かに、 'validate'配列の関数名を名前の変更で更新していますか? –
それはちょうど2つの機能、1st - doesnt仕事、セカンド - 作品 –