如何在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'),
}),

您的架构定义看起来正确。

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中测试了它,并且似乎工作正常。

最新更新