ant-design-mini
ant-design-mini copied to clipboard
formStore.validateAll 校验信息清空问题
-
具体现象:触发表单校验后,两个必填字段未填,填写其中一个值后,通过
form.setFieldsValue
给另一个值赋值时,通过setFieldsValue
改变的值对应的 FormItem 不会清空已有错误信息。 -
引起原因: https://github.com/ant-design/ant-design-mini/blob/f510d6207b7cb30a1f22f42947416dc45c09a5ac/src/_util/formStore.ts#L175-L177
-
临时解决方案:通过 ref 找到对应的 FormItem,手动调一遍
updateErrorInfo('')
-
期望:
方案1:在validateAll中,当没有errors时,保证该代码始终执行
https://github.com/ant-design/ant-design-mini/blob/f510d6207b7cb30a1f22f42947416dc45c09a5ac/src/_util/formStore.ts#L187
方案2:这里如果为了普通场景的表单校验执行效率的话,可以在Form
中暴露出来一个字段校验函数,供使用者手动调用
validateFields: (nameList?: string[]) => Promise
预计七月份修复
https://github.com/ant-design/ant-design-mini/issues/305
使用1.0表单组件没有这个问题 https://ant-design-mini.antgroup.com/components/form#%E6%A0%A1%E9%AA%8C