Formik + Yup 如果未触及则不验证输入
Formik + Yup don't validate input if untouched
我正在尝试使用 Formik + Yup 来验证我的表单,但目前如果我触摸一个字段,然后尝试提交,一个具有最小长度的字段将被验证,并且不允许我提交。
按照我的代码沙箱 (https://codesandbox.io/s/focused-bardeen-5fiuz),我希望用户能够提交表单,如果他们只是更改 firstName
字段,而不为 [=11= 输入任何内容] 场地。我尝试了 .notRequired()
和 .nullable(true)
参数,但没有用。知道如何实现吗?
您可以尝试将自定义验证与 test
结合使用。这里有一个工作示例 https://codesandbox.io/s/laughing-dust-f9wet
country: yup
.string()
.test("isValidCode", "Country must be 2-letters (ISO codes).", value => {
if (!value) {
return true;
}
return value.toString().length === 2;
})
我正在尝试使用 Formik + Yup 来验证我的表单,但目前如果我触摸一个字段,然后尝试提交,一个具有最小长度的字段将被验证,并且不允许我提交。
按照我的代码沙箱 (https://codesandbox.io/s/focused-bardeen-5fiuz),我希望用户能够提交表单,如果他们只是更改 firstName
字段,而不为 [=11= 输入任何内容] 场地。我尝试了 .notRequired()
和 .nullable(true)
参数,但没有用。知道如何实现吗?
您可以尝试将自定义验证与 test
结合使用。这里有一个工作示例 https://codesandbox.io/s/laughing-dust-f9wet
country: yup
.string()
.test("isValidCode", "Country must be 2-letters (ISO codes).", value => {
if (!value) {
return true;
}
return value.toString().length === 2;
})