关于antd Form.Item的validator的触发时机

我想对用户输入的内容进行校验,如果输入的内容已经存在,就提示,否则将输入的内容存入数组,为此,在Form.Item的validator中加入了校验条件,validateTrigger设置为onChange。

结果:在输入的时候校验正常,但是在提交的时候再次进行了校验,导致了错误无法提交,请问有没有办法让validator的校验仅在用户输入改变的时候触发,而提交表单的时候不触发?

复现地址

阅读 6.4k
1 个回答

不是校验的问题,还是考虑优化逻辑吧。听起来,如果我录入'abc',那你会在那个数组里面存a,ab,abc,然后我想改成abd的话中间也会报一次错误咯?

看了你的回复,答案不变,考虑优化逻辑。

不管何时触发,你的目的是检查录入的内容是否已经存在,不要忘记这件事。而根据录入的内容调整exists中的数据是提交给后端之前要做的事情,而不是校验本身该做的事情。
简单说,数据是你的exists+当前录入的内容,并不需要每次触发校验就把当前录入内容放到exists里。

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