Укажите в окончательной форме хотя бы одно обязательное поле - PullRequest
0 голосов
/ 29 января 2020

У меня есть следующее:

export const isOneFieldValid = (val: string) => { 
  console.log(val)
  return val ? undefined : true
}

...
const validate = (field: string) => {
  switch (field) {
    case 'email': {
      return composeValidators(isOneFieldValid, isValidEmail, hasStringeMaxLength)
    }
    case 'workPhone':
    case 'homePhone':
    case 'mobile': {
      return composeValidators(isOneFieldValid, isNumber, hasNumberMaxLength)
    }
    default:
      return undefined
  }
}
...

Это проверяет все 4 поля, но есть ли способ проверить только одно поле, предполагая, что все они пусты?

Как Пока есть один способ связаться с пользователем, я могу отправить форму

1 Ответ

1 голос
/ 29 января 2020

звучит так, будто вам нужна проверка уровня формы, а не уровня поля?

<Form
    onSubmit={onSubmit}
    validate={values => {
            const errors = {}
            if (values.email && isValidEmail && hasStringMaxLength) {
              return ;
            } else {
             errors.email = 'Require';
            }
            if (writeFunctionToCheckWorkPhone) {
              return;
            } else {
              error.workPhone = 'Require';
            }
            if (writeFunctionToCheckHomePhone) {
              return ;
            } else {
              error.homePhone = 'Require';
            }
           if (writeFunctionToCheckMobile) {
              return ;
            } else {
              error.mobile = 'Require';
            }
            return errors;
          }}
    ...
...