如果rules里有自定义校验validator,会导致field.validate失效Fusion组件库地址
field.validate(async err => {
// 如果有自定义校验validator,就走不进这个回调
console.log(error, "error");
});
解决办法:
可以使用validatePromise属性
const { errors } = await field.validatePromise();
console.log(error, "error");
但是这种解决办法又会有一个问题,就是自定义校验不能使用callBack回调返回校验错误信息(此处callback is not a function不是校验错误信息)
validator: (_, value: any, callback) => {
if (!value?.length) {
return callback("账期不能为空");
}
}
这个问题的解决办法就是将callback用Promise.reject替换掉,或者直接field.setError(“code”, “errorMessage”)