仅当我使用验证但不在验证模式内时才可以访问值
<Formik
initialValues={initialValues}
validationSchema={validationSchema(values)}
onSubmit={actions.handleSubmit}
>
<Form>
Run Code Online (Sandbox Code Playgroud)
如果我使用 useFormikContext(); 值在validationSchema内部不可访问,因为初始化发生在Formik之后。
如何解决这个问题呢。
使用 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模式中的内部测试函数访问任何表单值
| 归档时间: |
|
| 查看次数: |
4481 次 |
| 最近记录: |