redux - 如何不以 redux 形式在验证函数中返回字符串
问题描述
我有一个带有输入字段和同步验证的表单。同步验证将产生错误消息,错误消息将显示在输入字段下方。
但是,在某些情况下,我只希望输入字段具有红色边框而没有错误消息。我尝试使用字段级验证。
import {validateDateString} from "some/path";
const renderField = ({input, value, meta: {touched, asyncValidating, error, valid}}) => {
return (
<div className=`${validateDateString(input.value) ? '': 'border-error'}`>
<input type="text" {...input}/>
{touched && error && <div className="form-group__error">{error}</div>}
</div>
);
};
const validate = (dateString) => {
if(validateDateString(dateString)) return undefined;
return false;
}
然后我的领域看起来像这样:
<Field
name={"myName"}
component={renderField}
validate={validate}
/>
在字段级验证上,我不希望显示错误消息,只在同步验证中。因此我不想在我的validate
函数中返回一个字符串,因为该字符串将显示在输入字段下方。文档说它不一定是字符串,所以我要返回false
:
如果该值无效,则验证函数应返回错误。这通常是一个字符串,但不是必须的。
但似乎不起作用:表单仍在提交中。我在验证功能中做错了什么,还是有另一种方法可以防止手动提交表单?
解决方案
推荐阅读
- java - 将错误输出连接到由 System.setErr(...) 设置的错误文件
- ios - iOS (14):UMP SDK 已实现 -> AppTrackingTransparency 框架还需要吗?
- ios - Obj-C - 从 MapView 中删除特定的自定义注释?
- r - 如何删除小于某个值的数据
- terraform - 将状态中的所有内容移到层次结构中
- c - 更好的使用 Switch Case 的方法?
- sql - SQL 返回名称相同但策略不同的地方
- scala - 使用scala在spark数据帧中的一行中的值计数
- amazon-web-services - 登录后使用 Route 53 将用户重定向到应用程序?
- node.js - 有没有办法在 CPANEL 中为节点进程获取控制台输出?