【发布时间】:2021-10-20 21:11:19
【问题描述】:
我有 3 个输入字段(姓名、ID 和邮政编码),我使用 formik 和 Yup 进行验证。
我想在这里实现的是,我想将每个输入字段与已知的名称、id 和邮政编码组合匹配(我有一个预定义的 id、名称、邮政编码的默认值)。
如果在所有 3 个输入字段中输入的值与名称、id 和邮政编码的默认值完全匹配,那么我必须在每个字段上显示 formik 错误(*不允许默认值)。如果这些字段之一与默认值不同,请不要在任何字段上显示错误。
例如,如果我的每个字段的默认值为 name="testName"、id="testID"、postCode="testPostCode",则在每个字段上显示验证错误仅在 所有 3 个输入值都与 defaultValues 匹配。
这就是我现在所拥有的:
const defaultValues = {
name: 'testName',
id: 'testID',
postCode: 'testPostCode'
}
const YUP_STRING = Yup.string().ensure().trim();
const validationSchema = yup.object().shape({
name: YUP_STRING.required('required'),
id: YUP_STRING.required('required'),
postcode: YUP_STRING.required('required'),
})
我尝试了几种变体,但这里没有任何效果。谁能帮我找到解决方案?
【问题讨论】: