单击按钮时显示小部件的错误文本

时间:2019-07-02 07:03:50

标签: flutter

我有以下代码,单击条件失败,需要单击按钮以显示错误文本。
错误文字:

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()会帮助我们吗?

2 个答案:

答案 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