У меня есть схема ниже
validationSchema={yup.object().shape({
firstName: yup
.string()
.required("Name cannot be empty")
.matches(NAME_REGEX, "Name can only contain english characters"),
lastName: yup
.string()
.required("Name cannot be empty")
.matches(NAME_REGEX, "Name can only contain english characters"),
location: yup
.object()
.nullable()
.shape({
country: yup.string().required(),
state: yup.string().required(),
city: yup.string().required()
})
})}
Проверка для firstName
и lastName
работает нормально, но я не знаю, как проверить location
.
Требование: location
вообще не требуется для заполнения. Но если какое-либо поле (_6 _ / _ 7 _, _ 8_) заполнено, то должны быть заполнены все три поля. Либо все, либо ничего.
Хотя я пытался проверить это, как указано выше, но это не работает.
Другое требование проверки: эти значения выбираются из элемента select
html, из которых первым <option>
является <option key={0}>-select-</option>
. Поэтому я не хочу, чтобы мои пользователи также выбирали эту опцию. На данный момент я обрабатываю это в onSubmit
, проверяя значения, и если они содержат -select-
, то эти значения не будут учитываться и будут заменены существующими.
обновление: location
никогда не может быть нулевым. Если пользователь не установил какое-либо поле местоположения, тогда также location
будет:
location: {
country: null,
state: null,
city: null
}
location
никогда не может быть нулевым, могут быть только его свойства.
Как мне сделать эти проверки?