<Form.Item
rules={[
{
required: true,
message: 'Please confirm your password!',
},
({ getFieldValue }) => ({
validator(_, value) {
if (!value || getFieldValue('password') === value) {
return Promise.resolve();
}
return Promise.reject(new Error('错误提示!'));
},
}),
]}
>
接收 Promise 作为返回值
参考链接:https://ant.design/components/form-cn/#components-form-demo-register
也可以直接传入校验结果:
举个栗子:
const [deptRe, setDeptRe] = useState(true); // 定义初始化校验结果
// 定义执行方法
const = () => {
let a = 3;
let b = 1;
if(a > b){
setDeptRe(false);
}else{
setDeptRe(true);
}
};
// 表单
<Form.Item
rules={[
() => ({
validator() {
if (deptRe) {
return Promise.resolve(); // 执行校验通过的结果
}
return Promise.reject(new Error('a大于b'),// 执行校验不通过的结果
);
},
}),
]}
>