如何解决访问“validateForm”函数中的“isValid”返回错误数据手动表单验证 问题:预期行为环境
上下文
在本机反应(expo app)中有我自己的多步“formik”形式的实现。我只想在按下按钮时进行验证(手动验证)。如果表单有效,则继续下一步的表单步骤。
问题:
现在“validateForm”点中“isValid”的错误值然后函数正在创建问题来实现我的逻辑。
还调用 validateForm 函数会多次渲染 fork 表单......我想这可能是由于 formik 内部改变了状态。但问题是,如果我们检查错误对象,它在一个渲染中有空对象,而在另一个渲染中有不同的对象(基本上我可以使用错误长度来实现多步表单切换......也不走运)。
Problem code link: https://snack.expo.io/@rosnk/formik-submit-test
预期行为
- 当 promise 被解析时,需要在 validateForm().then() 函数中使用正确的“isValid”值
环境
软件 | 版本 |
---|---|
Formik | "^2.2.6" |
反应 | "16.13.1", |
npm/纱线 | npm |
操作系统 | mac |
解决方法
我认为您的值不一致,因为您使用的是作为参数传递的 isValid 并且该值在 validateForm() 之后不会更改。
在您的 handleCustomSubmit 函数中,尝试使用
const handleCustomSubmit = (validateForm,isValid)=>{
console.log("custom submit")
validateForm().then((errors) => {
console.log("validation complete");
console.log("errors are",errors)
});
}
如果错误对象为空,则它应该是有效的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。