如何在Formik中访问ValidationSchema内部的值

时间:2020-06-03 19:15:49

标签: formik

仅当我使用验证而不是在validateschema内部时才可以访问值

<Formik
        initialValues={initialValues}
        validationSchema={validationSchema(values)}
        onSubmit={actions.handleSubmit}
      >
        <Form>

如果我使用useFormikContext();值不能在validateSchema内部访问,因为初始化是在Formik之后进行的。

如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

使用验证而不是validateSchema

在validateYupSchema中将表单数据作为第4个参数传递,它表示上下文,以后可以在模式中访问。

在validateYupSchema中将您的架构作为第二个参数传递。

<Formik
      validate={(values) => {
        try {
          validateYupSchema(values, validationSchema, true, values);
        } catch (err) {
          return yupToFormErrors(err); //for rendering validation errors
        }

        return {};
      }}

       onSubmit={} />

现在我们可以在模式中的测试功能内使用this.options.context访问任何表单值