javascript - 提交Formik表单时如何在TextField上显示验证错误而没有字段触摸
问题描述
我有带有validationSchema和输入字段的Formik表单,它们的实现方式如下:
<TextField
error={Boolean(touched.email && errors.email)}
fullWidth
helperText={touched.email && errors.email}
label="Email address"
name="email"
onBlur={handleBlur}
onChange={handleChange}
required
value={values.email}
variant="outlined"
/>
如果用户触摸该字段,它将被验证并且他将看到一条错误消息。但是,如果他没有触摸该字段并尝试提交表单,验证将阻止它,但不会显示错误消息。
是否可以强制每个字段都被触及 onSubmit 或其他可以涵盖这种情况的东西?
解决方案
实际上,您显示错误的条件不是一个好方法,我的意思是:
helperText={touched.email && errors.email}
单击提交按钮后,您可以访问onSubmit
方法并在其中onSubmit
检查表单error
是否存在,如果存在,则传递本地状态并让组件更新并使用本地状态显示helperText
为错误。
使用touched.email
不是一个好方法,特别是当您有多个输入时。不可能同时集中所有这些。
推荐阅读
- javascript - js构建加载div
- python - 基于单个查询中三个可能条件之一的 SQL SELECT
- r - Imputation - 使用 R 分配具有未标记变量的值
- r - 使用 Chron 转换时间未按预期工作
- android - 如何在没有所有这些错误的情况下升级 Flutters minSdkVersion?
- c# - C# 从字符串变量中获取类型并在泛型方法中使用它
- python - 从第一行在pycharm控制台中执行多行输入
- java - 配置 Spring Boot Security 以使用 JWT 作为访问令牌和刷新令牌的常规令牌?
- robotframework - RobotFrameWork:我怎样才能让生产线暂时停止运行?
- javascript - 如何使用构造函数创建对象数组?