如果未触摸,Formik + Yup不会验证输入

时间:2019-07-02 01:37:19

标签: node.js reactjs formik yup

我正在尝试使用Formik + Yup来验证我的表单,但是当前如果我触摸一个字段,然后尝试提交,则具有最小长度的字段将被验证,并且不允许我提交。

在我的代码沙箱(https://codesandbox.io/s/focused-bardeen-5fiuz之后,我希望用户能够只更改firstName字段但不为country字段输入任何内容的情况下提交表单。我同时尝试了.notRequired().nullable(true)参数,但是没有用。知道如何实现吗?

1 个答案:

答案 0 :(得分:1)

您可以尝试对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;
      })