【发布时间】:2021-11-19 06:04:02
【问题描述】:
我正在使用 Formik 提交表单。我希望验证逻辑略有不同,具体取决于它是由模糊/更改事件触发还是提交前验证触发。 (长话短说,在预提交期间,我只想运行同步验证——我的后端将执行我在提交表单时在模糊/更改上运行的相同异步验证,所以我想在预提交中跳过它.) 我的验证函数看起来像这样:
validate={(value) => {
const error = validateSync(value);
if (!error && !form.isSubmitting) {
return validateAsync(value);
}
return error;
}}
在这种情况下,我使用useFormikContext 来获取form.isSubmitting。
根据提交时的Formik docs,isSubmitting 应在 Pre-submit 阶段,Validation 阶段之前立即设置为true。这似乎没有发生,因为您可以看到您是否尝试在 this sandbox 中提交表单(检查控制台以查看 isSubmitting 和 isValidating 都是 false - 根据 Formik 文档,在这个阶段他们都应该是true)。
另一个用户有一个similar question,但答案没有解决 Formik 的潜在(可能)错误。
【问题讨论】:
标签: javascript reactjs forms formik