我正在构建一个多步骤表单,其中每个步骤都是自己的表单,并具有自己的验证模式。我使用react-hook-form的形式(不认为这在这里的问题)和yup的验证,所以这里是一个简化的版本,我试图做什么
export const page1Schema = yup.object().shape({
["signature"]: yup.string().required(),
});
export const page2Schema = yup.object().shape({
["dependentField"]: yup.string().when(["signature"], {
is: (signature) => signature !== "",
then: () => yup.string().required(),
otherwise: () => yup.string().notRequired(),
})
});
因此,在page 2Schema中,我想访问表单步骤1中的字段“signature”的值,并仅在步骤1中的字段满足某些条件时将该字段设置为required。有办法做到吗?
1条答案
按热度按时间xkrw2x1b1#
你可以这样尝试:
在this.resolve()函数中,可以获取
signature
的值。如果
signature
为true,则可以检查dependentField
是否有值(!!value
)。如果
signature
为false,则不提供此字段,并且可以允许dependentField
的任何值。