给出一个是的模式
const validationSchemas = Yup.object().shape({
mobileLast4Enabled: Yup.array(), //checkbox
mobileLast4: Yup.string() //textbox
.when('mobileLast4Enabled', {
is: ['on'],
then: schema => schema.required(requiredText).min(4, '4 numbers required').max(4),
otherwise: schema => schema.notRequired()
}),
customQuestion: Yup.string().required(requiredText),
});
当我这样做时
validationSchemas.fields.mobileLast4.describe()
我会返回一个具有字段 tests
的对象,该字段是一个按预期描述模式规则的数组。这在 customQuestion
的情况下工作得很好,但是当我使用 .when
时,例如在 mobileLast4
的情况下,tests
属性是一个空数组。我已经尝试了所有可能的排列,并且根据我看过的其他问题,我的架构似乎是正确的。
const initialValues = {
mobileLast4: '',
mobileLast4Enabled: [],
customQuestion: '',
};
<Formik validationSchema={validationSchemas} initialValues={initialValues} onSubmit={() => { }}> ...
此外,使用 TypeScript FWIW。
我做错了什么?