仅当我使用验证而不是在validateschema内部时才可以访问值
<Formik
initialValues={initialValues}
validationSchema={validationSchema(values)}
onSubmit={actions.handleSubmit}
>
<Form>
如果我使用useFormikContext();值不能在validateSchema内部访问,因为初始化是在Formik之后进行的。
如何解决这个问题。
答案 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
访问任何表单值