#58836·ant-design

[表单] 支持在不延迟同步规则的情况下对每个规则进行验证

作者: nikzanda创建于 2026年7月29日更新于 2026年9月10日
标签💡 Feature Request🧶 Low Priority

此特性能解决什么问题 ?

. 项目'目前支持有效Debounce',但在评价任何规则之前,延迟适用于整个实地验证。 因此,同步规则与同步规则一起被延迟.

一个常见的例子是实体代码必须:

  • 需要立即验证;
  • 具有独特性,这需要API请求,并应解除。

最小复制: [StackBlitz] (https://stackblintz.com/edit/vitejs-vite-vci8apip?file=src%2FApp.tsx) (中文(简体) ).

复制时使用 " atend ^ 6.5.2 " 和 " 1 000ms " `validate Debounce ' 。

步骤 :

  1. 实体代码输入中键入非空值.
  2. 清除输入。
  3. 显示所需错误时观察。

实际行为 :

  • 同步独有性验证器按原计划解开.
  • " 必要 " 错误也推迟了 " 1 000ms " 。
  • 添加`验证第一 ' 并不能使所需的验证立即生效,因为外地一级的解除是在规则评价开始之前发生的。

预期行为 :

  • " 必要 " 规则应立即失效。
  • 同步独特性规则只有在其解除间隔后才能运行。
  • 新的值应取消或取代待同步验证。

在自定义验证器内执行解禁是可能的,但每个消费者然后必须手动管理计时器,僵硬的承诺和种族条件. 将同步检查移出Form验证系统之外也会失去标准验证寿命周期和反馈.

这一使用案例已在下列文件中讨论:

拟议的API是什么样子?

允许在单个规则上配置“ validate Debounce” :

时间轴 : <表经. 项目 标签=“实体代码” 名称=“代码” 首先验证 [ { 要求:真实, 信息:“需要代码”, {\fn华文楷体\fs16\1cHE0E0E0} { 验证 : 1 000, 校验符 : async ( , 值) {{ 如果 (! 值) { 返回; {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?

Const 为 Unique = 等待检查Code Uniqueness(值);

如果 (! 是独有的) { 扔出新错误( “ 代码已经存在 ” ) ; {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? {\fn华文楷体\fs16\1cHE0E0E0} {\fn华文楷体\fs16\1cHE0E0E0} [ [ ]

翻译: < 输入 / > </形式。 项目 >


建议的行为:

- 立即开始一项没有 " 失效 " 的规则。
- 在所配置的延迟之后开始使用 " 失效 " 规则。
- 当外地价值发生变化时,该规则有待验证。
- 在`有效规则第一'的情况下,规则秩序得到维护,只有在验证达到解除规则时才适用延误。 在上述例子中,空值因此失败
. . . . . . .

内容来源: ant-design/ant-design