微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

访问“validateForm”函数中的“isValid”返回错误数据手动表单验证 问题:预期行为环境

如何解决访问“validateForm”函数中的“isValid”返回错误数据手动表单验证 问题:预期行为环境

上下文

在本机反应(expo app)中有我自己的多步“formik”形式的实现。我只想在按下按钮时进行验证(手动验证)。如果表单有效,则继续下一步的表单步骤。

问题:

现在“validateForm”点中“isValid”的错误值然后函数正在创建问题来实现我的逻辑。

调用 validateForm 函数会多次渲染 fork 表单......我想这可能是由于 formik 内部改变了状态。但问题是,如果我们检查错误对象,它在一个渲染中有空对象,而在另一个渲染中有不同的对象(基本上我可以使用错误长度来实现多步表单切换......也不走运)。

 Problem code link: https://snack.expo.io/@rosnk/formik-submit-test 

预期行为

  1. 当 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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?