方案1:antd-form表单其实有提供一个api:scrollToFirstError=true,但有可能失效。
方案2:
const value = form.validateFields();
value.then(resParams => {
// 校验通过代码
}).catch(() => {
// 在catch中进行错误定位
const errorList = (document as any).querySelectorAll(".ant-form-item-has-error");
errorList[0]?.scrollIntoView({
block: "center",
behavior: "smooth",
});
})
原理:antd-form表单,会在校验过程中给校验不通过的item增加“ant-form-item-has-error”类,我们只需要找到第一个item,对其进行定位即可