validation - 颤振验证器没有返回任何东西
问题描述
这是我的 signup.dart 文件代码:
没有什么比错误更重要的了。但只是我想看到在文本字段下显示一个错误,但它没有显示任何内容。谁能说我做错了什么?
import 'package:flutter/material.dart';
class SignupPage extends StatefulWidget {
@override
_SignupPageState createState() => _SignupPageState();
}
class _SignupPageState extends State<SignupPage> {
final formkey = new GlobalKey<FormState>();
registered() {
print("validation form...$formkey");
}
@override
Widget build(BuildContext context) {
return new Scaffold(
resizeToAvoidBottomPadding: false,
body: Column(crossAxisAlignment: CrossAxisAlignment.start, children: <
Widget>[
Container(
child: Stack(
children: <Widget>[
Container(
padding: EdgeInsets.fromLTRB(15.0, 110.0, 0.0, 0.0),
child: Text(
'Qeydiyyat',
style:
TextStyle(fontSize: 60.0, fontWeight: FontWeight.bold),
),
),
],
),
),
SizedBox(height: 30.0),
Container(
padding: EdgeInsets.only(top: 35.0, left: 20.0, right: 20.0),
child: Form(
key: formkey,
child: Column(
children: <Widget>[
TextFormField(
decoration: InputDecoration(
labelText: 'E-Poçt',
labelStyle: TextStyle(
fontFamily: 'Montserrat',
fontWeight: FontWeight.bold,
color: Colors.grey),
// hintText: 'EMAIL',
// hintStyle: ,
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.green))),
validator: (val) {
return "sea";
},
),
SizedBox(height: 10.0),
TextFormField(
keyboardType: TextInputType.text,
decoration: InputDecoration(
labelText: 'Şifrə ',
labelStyle: TextStyle(
fontFamily: 'Montserrat',
fontWeight: FontWeight.bold,
color: Colors.grey),
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.green))),
obscureText: true,
validator: (val) {
return "sea";
},
),
SizedBox(height: 10.0),
TextFormField(
decoration: InputDecoration(
labelText: 'Ad Soyad',
labelStyle: TextStyle(
fontFamily: 'Montserrat',
fontWeight: FontWeight.bold,
color: Colors.grey),
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.green))),
validator: (val) {
return "sea";
},
),
SizedBox(height: 50.0),
Container(
height: 40.0,
child: RaisedButton(
color: Colors.blue,
onPressed: registered,
shape: RoundedRectangleBorder(
side: BorderSide(color: Colors.blue),
borderRadius: BorderRadius.circular(50),
),
child: Center(
child: Text(
'Qeydiyyat',
style: TextStyle(
color: Colors.white,
fontWeight: FontWeight.bold,
fontFamily: 'Montserrat'),
),
),
)),
SizedBox(height: 20.0),
Container(
height: 40.0,
child: RaisedButton(
color: Colors.red,
disabledColor: Colors.transparent,
shape: RoundedRectangleBorder(
side: BorderSide(color: Colors.blue),
borderRadius: BorderRadius.circular(50),
),
child: InkWell(
onTap: () {
Navigator.of(context).pop();
},
child: Center(
child: Text('Daxil ol',
style: TextStyle(
color: Colors.blue,
fontWeight: FontWeight.bold,
fontFamily: 'Montserrat')),
),
),
),
),
],
),
)),
]));
}
}
没有什么比错误更重要的了。但只是我想看到在文本字段下显示一个错误,但它没有显示任何内容。谁能说我做错了什么?
解决方案
如果您想验证工作自动将 TextField 的 autoValidate 属性设置为 true。否则,如果您想在此类按钮单击事件后进行验证,您可以调用 validate() 方法。您的注册方法可以更改为以下内容:
registered() {
if (formKey.currentState.validate()) {
//do something
}
}
推荐阅读
- ms-access - 条件从变量号 ms-access 开始的序列
- c++ - C ++如何使对象的副本不指向原始对象
- tensorflow - Keras load_weights() 未加载检查点
- java - 了解“编码到接口”以隐藏实现细节
- vue.js - 在组件内按需导入?
- python - TypeError 并非所有参数都在 Python-mySql 中转换
- typescript - Typescript 扩展了 Express Request 正文
- json - 使用 swiftyJSON 等解析 JSON
- python - 使用烧瓶将html表格转换为pdf
- java - Java正则表达式转义管道