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

如何不以redux形式在validate函数中返回字符串

如何解决如何不以redux形式在validate函数中返回字符串

我有一个带有输入字段和同步验证的表单。同步验证会产生错误信息,错误信息会显示在输入框下方。

但是,在某些情况下,我只希望输入字段具有红色边框而没有错误消息。我尝试使用字段级验证。

status_config.findOne({ where: created_time **need to implement here to get last added value})

然后我的字段看起来像这样:

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} /> 函数中返回字符串,因为该字符串将显示在输入字段下方。 docs 说它不必是字符串,所以我要返回 validate

如果值无效,验证函数应该返回一个 错误。这通常是一个字符串,但不一定是。

但似乎不起作用:表单仍在提交中。我在验证功能中做错了什么,还是有其他方法可以防止手动提交表单?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。