Flutter 将验证逻辑与UI颤振分开
我试图通过在远离UI的地方创建一个单独的类来对TextFields执行表单验证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.!#$%&'*+-/=?^_`{|}
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这是一个很好的答案。成功了。