React-Hook-Form. Разная валидация на различные события
Я только начал использовать React Hook Form и не могу понять, как реализовать разную валидацию для различных событий.
Итак, у меня есть инпут
<input
type="text"
{...register("name", {
required: 'is required',
maxLength: {
value: 40,
message: 'max length is 40',
},
pattern: {
value: /^[a-zA-Z]+(?:-[a-zA-Z]+)*$/,
message: 'неверный формат',
}
})}
/>
Я хочу, чтобы правило "required" срабатывало только при событии "onSubmit" и не срабатывало при других событиях. А все остальные правила, не важно какие я укажу, должны срабатывать при событии "onBlur".
Я установил режим onBlur в опциях useFome для этого.
const {
register,
handleSubmit,
formState: { errors },
watch,
} = useForm<IFields>({
mode: 'onBlur',
});
Но в этом случае, если я фокусируюсь на инпуте, а затем убираю фокус, правило required все равно срабатывает.
Я попробовал следующие опции.
formState: { isSubmitting }
required: isSubmitting ? 'is required' : false,
Но опции isSubmitted и isSubmitting срабатывают только после валидации.