提交表單的時(shí)候不校驗(yàn)了跃惫,出現(xiàn)了線上bug财剖,但是之前都是完好運(yùn)行的斋陪。發(fā)現(xiàn)是表單校驗(yàn)函數(shù)validate()執(zhí)行一直pending瘤运。
查了一下翰撑,參考這個(gè)回答https://codeantenna.com/a/KZ3iv63PiZ 說(shuō)是自定義校驗(yàn)函數(shù)沒(méi)有callback罩旋,我檢查了代碼,callback 之前寫了一個(gè) clearValidate(), 這個(gè)函數(shù)阻塞了callback()眶诈。 注釋了就OK了涨醋。。
function validatePass(rule: any, value: string | number, callback: any): any {
// 只能輸入數(shù)字且小數(shù)點(diǎn)后最多兩位
const reg = /^\d+(?=\.{0,1}\d{0,2}$|$)/;
if (value) {
if (typeof value === 'string' && value.charAt(0) === '-') {
return callback(new Error('error!'));
}
if (!reg.test(value.toString())) {
return callback(new Error('required!'));
}
}
// adjustCauseRef.value?.clearValidate();
return callback();
}