如何在formik中访问validationSchema内的值

Nav*_* PG 1 formik

仅当我使用验证但不在验证模式内时才可以访问值

<Formik
        initialValues={initialValues}
        validationSchema={validationSchema(values)}
        onSubmit={actions.handleSubmit}
      >
        <Form>
Run Code Online (Sandbox Code Playgroud)

如果我使用 useFormikContext(); 值在validationSchema内部不可访问,因为初始化发生在Formik之后。

如何解决这个问题呢。

Dip*_* KC 5

使用 validate 而不是validationSchema

将表单数据作为validateYupSchema 中的第四个参数传递,该参数表示上下文,并且可以稍后在模式中访问。

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

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

        return {};
      }}

       onSubmit={} />
Run Code Online (Sandbox Code Playgroud)

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