Flutter 将验证逻辑与UI颤振分开

Flutter 将验证逻辑与UI颤振分开,flutter,dart,flutter-layout,Flutter,Dart,Flutter Layout,我试图通过在远离UI的地方创建一个单独的类来对TextFields执行表单验证 class ValidationRules { emailValidation() { if (email.isEmpty) { return 'Please enter your email address'; } if (RegExp( r"^[a-zA-Z0-9.a-zA-Z0-9.!#$%&'*+-/=?^_`{|}

我试图通过在远离UI的地方创建一个单独的类来对TextFields执行表单验证

class ValidationRules {
  emailValidation() {
    if (email.isEmpty) {
     return 'Please enter your email address';
      
    }
    if (RegExp(
            r"^[a-zA-Z0-9.a-zA-Z0-9.!#$%&'*+-/=?^_`{|}~]+@[a-zA-Z0-9]+\.[a-zA-Z]+")
        .hasMatch(email)) {
       return null;
      
    }
     return 'This is not a valid email address;
  }

  passwordValidation() {
    if (password.isEmpty) {
       return 'Please enter your email address';
      
    }
  }
}
然后,我通过调用TextField小部件的validator属性来访问这些函数

validator: _validationRules.emailValidation()
我收到以下错误:

建筑生成器(脏)引发了以下类型错误: 类型“String”不是类型“((String?=>String?)”的子类型

显然,我无法返回错误消息,因为它们是字符串类型的


有什么建议吗?

你能试试这个:validator:(String?e)=>\u validationRules.emailValidation()@Adnan这是一个很好的答案。成功了。