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

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

最佳答案

您可以通过使用带有keyForm 小部件来实现它。喜欢

声明

GlobalKey<FormState> _globalFormKey = GlobalKey();

并将其设置为

Form(
     key: _globalFormKey,
     .
     .
     .
     child: 
)

在这里你可以使用 child 作为 TextFormField 并在按钮点击失败时写入。

_globalFormKey.currentState.validate()

了解更多信息 Form widget

~PS: Instead of check validation out of TextFormField, It has own property validator. Search and use it.

关于flutter - 单击按钮时显示小部件的错误文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56847023/

相关文章:

Flutter:如何切换到已经在 Navigator 堆栈中的页面?

android - Flutter:无法使用 GradleScopeCompileServices.createGeneralCompileCaches() 创建 DefaultGeneralCompileCaches 类型的服务

flutter - 可以用吗??在这种情况下是运营商?

android - ListView flutter 中的问题开关值

android - 为什么没有任何东西显示出此 flutter 支架的主体?

Flutter 应用程序依赖于使用特定于平台的 API 的包

flutter - 显示键盘时如何拦截 flutter 后退按钮

flutter - 键盘出现时如何避免 flutter 的页面向上滚动

尽管我在 try catch block 中编写了 Flutter 应用程序,但它还是崩溃了

android - 在发布版本中使用 Sentry 和 Flutter