React 中 When in Yup 的两个条件

Two Condition in When in Yup in React

我想提出两个条件,如果它的 isProductisBox 为真,那么 product_id 应该是必需的。我在下面做了这段代码,但它不起作用

 product_id: yup.string().when(['isProduct', 'isBox'], {
    is: true,
    then: yup.string().required('Select product'),
  }),

当前,您正在检查两个字段是否为真,为了检查其中一个字段是否为真,您需要重写 is 属性 以返回布尔值的函数:

product_id: yup.string().when(['isProduct', 'isBox'], {
  is: (isProduct, isBox) => isProduct || isBox,
  then: yup.string().required('Select product'),
}),

参考:https://github.com/jquense/yup#mixedwhenkeys-string--arraystring-builder-object--value-schema-schema-schema