根据你提供的代码,我看到有一些错误和需要修改的地方。首先,checkoutLegalPerson 函数缺少 field 参数。其次,在 handleSubmit 函数中,你尝试使用了 value 变量但没有定义它。
以下是对代码进行修改并实现验证通过的示例:
const trimLeft = function trimLeft(s) {
return s.replace(/(^\s*)/g, '');
};
const isEmpty = function isEmpty(value) {
return value === undefined || value === null || trimLeft(value) === '';
};
const checkRequired = () => {
return (value, fields) => {
if (isEmpty(fields['extension']) || isEmpty(fields['maxExtenPeriods']) || isEmpty(fields['repayChannel'])) {
return '都要填写';
}
};
};
const checkoutLegalPerson = (field) => {
return (value) => {
if (!value) {
return `${field}不能为空`;
}
};
};
const validator = createValidator({
extension: [(value, fields) => {
if (fields.extension === true && isEmpty(value)) {
return '最长展期期数';
}
if (!fields.extension) {
return;
}
}],
maxExtenPeriods: [checkoutLegalPerson('maxExtenPeriods')],
repayChannel: [checkoutLegalPerson('还款渠道')],
});
const handleSubmit = (values) => {
console.log('1111111');
const error = validator(values);
const requiredError = checkRequired()(null, values);
if (requiredError) {
error._error = requiredError;
}
if (!error._error && Object.keys(error).length === 0) {
console.log('验证通过');
}
};
请注意,以上只是对代码的修改示例,并不能保证完全符合你的业务逻辑。你可能还需要根据实际需求进行进一步调整。
内容由零声教学AI助手提供,问题来源于学员提问




