Как проверить, когда три флажка отмечены в YUP?
У меня есть три флажка:
[*] option one
[*] option two
[*] option three
Действительное состояние только тогда, когда все три проверены. Все остальные состояния недопустимы и должны отображать сообщение об ошибке.
Как это реализовать с помощью yup?
Моя текущая реализация, которая не работает. Проверяется только один флажок, но не все.
yup.object().shape({
registerTerms: yup.boolean().oneOf([true], 'Must Accept Terms of Service'),
registerCookie: yup.boolean().oneOf([true], 'Must Accept Cookie Policy'),
registerPrivacy: yup.boolean().oneOf([true], 'Must Accept Privacy Policy'),
}),
1 ответ
Ваше определение схемы выглядит правильно.
import * as yup from "yup";
const schema = yup.object().shape({
registerTerms: yup.boolean().oneOf([true], "Must Accept Terms of Service"),
registerCookie: yup.boolean().oneOf([true], "Must Accept Cookie Policy"),
registerPrivacy: yup.boolean().oneOf([true], "Must Accept Privacy Policy")
});
const validInputObj = {
registerTerms: true,
registerCookie: true,
registerPrivacy: true
};
const invalidInputObj = {
registerTerms: true,
registerCookie: true,
registerPrivacy: false
};
schema.isValid(validInputObj).then(isValid => console.log(isValid)); // true
schema.isValid(invalidInputObj).then(isValid => console.log(isValid)); // false
Я проверил это в codesandbox, и, кажется, работает нормально.