Я использую библиотеку response-hook-form и имею контроллер для выбора даты
Согласно документации , правила должны работать точно так же, как проверка, установленная внутри регистра.
Он работает с { required: true }
, но при необходимости учитывать значение в поле я не могу вызвать ошибку.
Для моей цели у меня есть функция для преобразования даты из response-datepicker в YYYY-MM-DD, называемую formatDate
(т.е. formatDate
принимает значение из средства выбора даты и возвращает строку "YYYY-MM-DD"
)
Только для целей тестирования , Я пытаюсь вызвать ошибку, если значение не соответствует определенной строке в форме ГГГГ-ММ-ДД, например
<Controller
as={<DatePicker />}
name="initialDate"
control={control}
maxDate={dateRef.current}
rules={{ validate: (value) => !value || formatDate(value) === '2020-07-12' }}
/>
Ошибка никогда не запускается
Изменить: После при некоторых тестах ошибка возникает при отправке формы, однако я установил активацию проверки при размытии, и это часть, которая не работает. Также обратите внимание, что когда я попробовал ошибку для {required: true}, она срабатывала при размытии без проблем
const { handleSubmit, control, watch, setValue, errors, register } = useForm({ mode: 'onBlur'});