我在用 TDesign 的 Form 组件做表单,调用 form.reset() 之后字段值清空了,但之前校验失败的红色提示和边框还在,这是为啥?
我试过手动 setFieldsValue 清空字段,也试过 reset 后再 validate({ validateOnly: false }),都不行。控制台也没报错,就是 UI 状态没更新。
const onReset = () => {
form.reset();
// 甚至加了这行也没用
// form.clearValidate();
};
reset()方法默认只把表单数据恢复成初始值,它不管校验状态的 UI(比如红框和错误提示),所以你得手动调一下clearValidate()。你说加了
clearValidate()没用,大概率是传参不对,或者调用顺序的问题。直接用下面这段代码,两个方法挨着调用,且clearValidate不要传任何参数,这样能清除所有字段的校验状态:如果这还不行,检查一下你的
form实例引用是不是对的,确保它是Form组件暴露出来的那个实例。大部分情况下这么写就能解决。