发现antd中的Select组件内部表单校验并未抛出错误信息,所以需手动抛出。我们可以在表单的 onFinishFailed 方法中手动抛出,并调用FormItem的scrollToField方法滚动至出错的字段。
示例代码如下:
import React from 'react';
import { Form, Select, Button } from 'antd';
const { Option } = Select;
const Demo = () => {
const [form] = Form.useForm();
const onFinish = (values) => {
console.log('Received values of form: ', values);
};
const onFinishFailed = ({ errorFields }) => {
form.scrollToField(errorFields[0].name);
const err = new Error('Form validation failed');
err.errorFields = errorFields;
throw err;
};
return (
);
};
export default Demo;