【发布时间】:2019-07-14 12:36:38
【问题描述】:
我正在登录屏幕中工作,我不想为它制作基本的正则表达式。
我正在使用来自 BeautyTextField 的自定义 UI 元素库
这是我的电子邮件和密码输入小部件
Widget emailInput(){
return BeautyTextfield(
validator: (value)=>RegExp(r"^[a-zA-Z0-9.]+@[a-zA-Z0-9]+\.[a-zA-Z]+").hasMatch(email)?"Enter Valid Email":null,
decoration: InputDecoration(labelText:"Email"),
cornerRadius: BorderRadius.all(Radius.circular(50)),
width: double.maxFinite,
height: 50,
duration: Duration(milliseconds: 300),
inputType: TextInputType.emailAddress,
keyboardType: TextInputType.emailAddress,
prefixIcon: Icon(Icons.alternate_email),
placeholder: "Email",
onSaved: (value)=> email = value,
fontFamily: "Muli",
); }
Widget passwordInput(){
return BeautyTextfield(
validator: (value)=> value.length == 6 ? "Enter Password of 6 Numbers":null,
cornerRadius: BorderRadius.all(Radius.circular(50)),
width: double.maxFinite,
height: 50,
duration: Duration(milliseconds: 300),
inputType: TextInputType.text,
prefixIcon: Icon(Icons.lock_outline),
obscureText: true,
placeholder: "Password",
onSaved: (value)=> password = value,
);
}
和我的表单小部件:
Widget build(BuildContext context) {
// Build a Form widget using the _formKey created above.
return Form(
/////////////////////////////////////////////////////////////
/// Form Body
key: signINformKey,
child:
Column(
children: <Widget>[
emailInput(),
passwordInput(),
submitButton(),
signUpButton(),
],
),
);}
如果数据与正则表达式匹配,我在按下登录按钮时使用此功能,因此它将重定向到另一个页面,否则它应该显示一个带有消息“登录错误”的小吃栏,但它不起作用并且每次我点击登录按钮时,即使正则表达式不匹配,它也会重定向到另一个页面,因为signINformKey.currentState.validate() 总是返回 true
【问题讨论】:
-
这是我的仓库,以防你想检查github.com/omarsherifs/iFound/tree/master/ifound