我有以下代码,单击条件失败,需要单击按钮以显示错误文本。
错误文字:
final confirmPassword = TextFormField(
controller: widget.confirmPasswordController,
obscureText: true,
decoration: InputDecoration(
prefixIcon: Icon(Icons.lock_open, color: Colors.grey),
hintText: 'Confirm Password',
errorText: validatePassword(widget.confirmPasswordController.text)
? "Password should contains more then 5 character"
: null,
contentPadding: EdgeInsets.fromLTRB(20.0, 10.0, 20.0, 10.0),
),
);
按钮单击:
onPressed: () {
if (validateEmail(widget.emailController.text) &&
validatePassword(widget.passwordController.text) &&
validatePassword(widget.confirmPasswordController.text)) {
// launch new screen
} else {
// show the error text as above checks failed
}
}
我们如何实现这一目标? setState()会帮助我们吗?
答案 0 :(得分:1)
您可以使用带有{strong>键的Form
小部件来实现此目的。喜欢
声明
GlobalKey<FormState> _globalFormKey = GlobalKey();
并将其设置为
Form(
key: _globalFormKey,
.
.
.
child:
)
在这里您可以将child
用作TextFormField
并在按钮单击失败时进行书写。
_globalFormKey.currentState.validate()
有关更多信息,Form widget
〜PS:它具有自己的属性
TextFormField
,而不是validator
之外的检查验证。搜索并使用它。
答案 1 :(得分:0)
使用表单小部件。
Flutter有一个很好的主题,上面有完整的示例:Build a form with validation