You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置react-final-form的Field组件仅在失去焦点时执行校验?

解决Field组件仅在失去焦点时触发校验的问题

嘿,这个场景我太熟悉了!你用的应该是react-final-form里的Field组件吧?默认情况下它确实会在内容变化时实时触发校验,但要改成仅在失去焦点时校验其实非常简单,只需要给Field组件添加一个validateTrigger属性就行。

直接上修改后的代码:

<Field 
  name="name" 
  component={TextInput} 
  placeholder="Name" 
  validate={inputContainsOnlyWords}
  validateTrigger="blur" // 关键就是这一行!
/>

原理说明:

Field组件的validateTrigger属性默认值是'change',所以每一次输入内容更新都会触发你传入的inputContainsOnlyWords校验规则。把它改成'blur'后,就只会在字段失去焦点(比如用户点击了输入框外的区域)时才执行校验逻辑。

如果之后你还需要在表单提交时也触发校验,还可以把validateTrigger设为数组形式,同时支持多个触发时机:

<Field 
  name="name" 
  component={TextInput} 
  placeholder="Name" 
  validate={inputContainsOnlyWords}
  validateTrigger={['blur', 'submit']}
/>

这样既满足了失去焦点校验的需求,也不会漏掉提交时的校验环节~

内容的提问来源于stack exchange,提问作者Juan Ignacio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 19:52:32