antd form 校验问题,有办法只校验一列吗?


点击 Valid 想只校验 first name 这一列

尝试过 form.validateFields() 会校验全部
尝试过 form.validateFields(['users', idx, 'first']) 这样还是会校验整个 users

代码已放置于此:code

阅读 5.5k
1 个回答

注意看 validateFields() 的函数签名和 NamePath 类型定义:

(nameList?: NamePath[]) => Promise
string | number | (string | number)[]

NamePath 本身就可以是一个数组,应该就是为了匹配 ["xxx", xx, "xxx"] 这种情况,而 validateFields() 函数需要传入一个 NamePath 的数组。也就是说其实你应该这样写:

// 校验第一行的 first name
validateFields([['users', 0, 'first']])

另外我注意到你在 Form.List 组件外又包裹了一层 Form.Item,我自己尝试的时候没有包裹这一层。

代码

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题