我刚学过Flutter 翼.这里我想问一下如何匹配密码和确认密码.在这里我会给出我的密码.我还使用TextField.我在这里不使用验证器来验证

                TextField(
                key: passkey,
                style: new TextStyle(color: Colors.white),
                controller: password,
                decoration: InputDecoration(
                  labelText: 'Password',
                  labelStyle: TextStyle(color: Colors.white),
                  hintStyle: TextStyle(color: Colors.white),
                  icon: const Padding(
                      padding: const EdgeInsets.only(top: 15.0),
                      child: const Icon(
                        Icons.lock_outline,
                        color: Colors.white,
                      )
                      ),
                  errorText: validate ? 'Password Can\'t Be Empty' : null,
                ),
                obscureText: _obscureText,

              ),
              TextField(
                style: new TextStyle(color: Colors.white),
                controller: confirmpassword,
                decoration: InputDecoration(
                  labelText: 'Retype Password',
                  labelStyle: TextStyle(color: Colors.white),
                  hintStyle: TextStyle(color: Colors.white),
                  icon: const Padding(
                      padding: const EdgeInsets.only(top: 15.0),
                      child: const Icon(
                        Icons.lock_outline,
                        color: Colors.white,
                      )),
                  // errorText:
                  // validate ? 'Password Can\'t Be Empty' : null,
                ),
                obscureText: _obscureText,
              ),

推荐答案

使用由内置验证器组成的TextFormField小部件

  // Form
  final GlobalKey<FormState> _form = GlobalKey<FormState>();
  final TextEditingController _pass = TextEditingController();
  final TextEditingController _confirmPass = TextEditingController();

  Form(
        key: _form,
        child: ListView(
              children: <Widget>[
                     TextFormField(
                           controller: _pass,
                           validator: (val){
                              if(val.isEmpty)
                                   return 'Empty';
                              return null;
                              }
                     ),
                      TextFormField(
                           controller: _confirmPass,
                           validator: (val){
                              if(val.isEmpty)
                                   return 'Empty';
                              if(val != _pass.text)
                                   return 'Not Match'
                              return null;
                              }
                     ),
                       ]
              )
    )


    // To validate call
    _form.currentState.validate()

Dart相关问答推荐

使用arm64v8/DART Docker映像进行编译时不支持DART镜像

什么相当于 dart 中的 JAVA ThreadLocal?

如何在 Flutter 的 firebase_database 中执行事务?

Flutter - 对 Cloud Firestore 进行排序

Flutter Drawer 作为单独的小部件不允许修改宽度

运行时出现Flutter错误:Error waiting for a debug connection: Bad state: No element

SliverList / SliverChildBuilderDelegate 提供初始索引或允许负索引

如何根据 Select 的选项卡更改样式?

如何限制TextSpan小部件的文本长度

无法将小部件标记为需要构建,因为框架已经在构建小部件的过程中

如何在控件边框(border()/阴影(shadow)中添加霓虹灯效果?

如何在 Dart 中使用类型Aliases/Typedefs(也是非函数)?

向 javascript 公开 Dart 函数

如何在 Dart 2 中clone复杂对象

函数调用前的感叹号是什么意思?

Dart 中的异步可迭代映射

Dart: 必须取消 Stream 订阅并关闭 StreamSinks 吗?

如何在 Dart 中获取文件名?

有没有办法取消dartfuture ?

const 构造函数实际上是如何工作的?