我正在尝试创建一个TextFormField模板。该函数从UI中获取多个参数,下面是该函数:
TextFormField _buildRoundedTextField(
String label,
TextEditingController controller, {
TextInputType? keyboardType,
bool isPassword = false,
String Function(String)? validationState,
}) {
return TextFormField(
controller: controller,
keyboardType: keyboardType,
obscureText: isPassword,
decoration: InputDecoration(
labelText: label,
filled: true,
fillColor: Colors.grey[200],
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(10.0),
),
),
validator: validatorState
return null;
},
);
}
字符串
问题出现在我通过函数传递验证器时,如下所示:
_buildRoundedTextField('Family Name', familyNameController,
validationState: (value) {
String pattern = r'^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$';
RegExp regExp = RegExp(pattern);
if (!regExp.hasMatch(value)) {
return 'Enter a valid email';
}
return null;
}),
型
它不会返回null,我不确定返回什么字符串。
1条答案
按热度按时间soat7uwm1#
试试这个代码,我做了一些修改。
validationState
类型更改为FormFieldValidator<String>?
AutovalidateMode
小部件:
字符串
Widget实现:
型
结果:
的数据
的