- I have searched the issues of this repository and believe that this is not a duplicate.
What problem does this feature solve?
业务需要规则校验通过提交按钮才可点击,现在暂时通过 isFieldsTouched 和 getFieldsError 组件来临时解决。
如果调用 validateFields 传入一个是否显示警告信息的配置就能完美解决了,不知道能否考虑?
What does the proposed API look like?
type ValidateFields<Values = any> = (nameList?: NamePath[], showMessages?: boolean) => Promise<Values>;
8条答案
按热度按时间ugmeyewa1#
警告信息不需要直接传入一个
' '
不行么?nwwlzxa72#
警告信息不需要直接传入一个
' '
不行么?琢磨了一下,需要定制 Form 组件维护一个全局状态 showMessages,然后 Form.Item 根据 showMessages 重写 rules 的 messages?正常的校验还要做的。这还只是想了一个大概,感觉复杂度有点高啊 😂 而且复杂表单的话这个方案感觉做不了。
n3h0vuf23#
通过 ConfigProvider 来配置需要的 message template,然后包一个自己的 Form 组件就行了哈
relj7zay4#
甚至看了一下 ConfigProvider 的源码,还是没有理解要怎么操作啊,没找到 message template 的配置 (:3J∠)
pcrecxhr5#
https://ant.design/components/form-cn/#validateMessages
11dmarpk6#
@zombieJ 这个对 validator rule 也有效吗?感觉只是对于内置的类型校验规则有效。
nbnkbykc7#
validate rule 可以自行按需返回 message,你可以做成受控的遇到提交时让校验规则返回真实的错误描述。
jogvjijk8#
validate rule 可以自行按需返回 message,你可以做成受控的遇到提交时让校验规则返回真实的错误描述。
这样不就需要一个顶层状态来管理了吗?和我之前说的那个方案好像没什么本质上的区别。如果内部支持会很复杂吗?