在验证各种字段时,计划使用这样一个类:
class InputValidator {
InputValidator({this.error = ''});
final String error;
String email(value) {
final globalValidator = GlobalValidator();
bool result = globalValidator.email(value);
String err = error != '' ? error : "This is not email";
return result ? null : err;
}
String require(value) {
String err = error != '' ? error : "This field is required";
return value != '' ? null : err;
}
String stepByStep(value) {
return 'xxx';
}
}
使用示例
Input(
label: "Email",
type: 'email',
controller: emailController,
validator: inputValidator.stepByStep
),
面临分阶段验证现场的问题。意思是,对具有不同错误的同一字段的几个不同验证。例如,首先我定义 to require,然后匹配电子邮件模式。我计划在同一个类中创建一个 stepByStep 方法,其中会发生必要的魔法。但我不知道如何在 Dart 中正确地做到这一点。
在 JS 中,我会有条件地这样做:
function stepByStep(value, steps){
stepsName.forEach(stepName => {
this[stepName](value);
})
}
stepByStep('xxx', ['require', 'email']);
我只看到这样的解决方案(如果您不想使用
enum,那么您也可以在线进行):是这样的吗:
用法: