gtournie / redux-form-validators

redux-form-validators
153 stars 22 forks source link

[Question] Validate only if field is dirty #62

Open mariomeyrelles opened 5 years ago

mariomeyrelles commented 5 years ago

Hello,

I am using Final Form. I have an e-mail field that is optional.

How would you validate only if the user tried to enter a wrong e-mail? I have succeeded to do this but I didn`t like the solution:

import * as vld from 'redux-form-validators';

<Field name="email" label="E-mail de Contato" placeholder="Deixe seu e-mail" component={TextInputField} validate={emailIfNotEmpty} />

The custom validator code is like this:

const emailIfNotEmpty = (value, allValues, meta) => { if (meta.dirty) { return vld.email()(value); } }

Can you suggest a better approach?

Kind Regards, Mário

gtournie commented 5 years ago

have you checked the conditional validations? You can check the args passed by if and unless. I think the third arg should be meta with Final Form.

mariomeyrelles commented 5 years ago

I tested right now and I'm just receiving values and value. The props and name parameters remain undefined.