首页 > 解决方案 > 颤动:不导航到另一个页面

问题描述

我想要得到的是当我以我应该能够进入另一个页面的形式输入 ID 和密码时。但是当我按下 submit 时,什么都没有发生。我得到的错误是 Equality 运算符==调用与不相关类型的引用。有没有办法解决这个问题?

  Form(
                    key: _formKey,
                    
                        child: Column(children: <Widget>[
                      TextFormField(
                        controller: nameController,
                        decoration: InputDecoration(labelText: 'Id'),
                        keyboardType: TextInputType.emailAddress,
                        validator: (value) {
                          if (value.isEmpty) {
                            return 'Enter id';
                          }
                          return null;
                        },
                      ),
                      TextFormField(
                        controller: passwordController,
                        decoration: InputDecoration(labelText: 'Password'),
                        obscureText: true,
                        validator: (value) {
                          if (value.isEmpty) {
                            return 'invalid password';
                          }
                          return null;
                        },
                      ),
                      SizedBox(height: 30),
                      RaisedButton(
                        child: Text('Submit'),
                        onPressed: () {
                          if (nameController ==  //i am getting a blue underline over here
                                  FirebaseFirestore.instance
                                      .collection("proddecAdmin")
                                      .doc("1")
                                      .set({'Id': ''}) &&
                              passwordController == //i am getting a blue underline over here
                                  FirebaseFirestore.instance
                                      .collection("proddecAdmin")
                                      .doc("1")
                                      .set({
                                    'password': '',
                                  })) {
                            Navigator.push(
                              context,
                              MaterialPageRoute(
                                  builder: (context) => ProfilePage()),
                            );
                          }
                        },

标签: flutterif-statement

解决方案


nameController 和密码控制器只是TextEditingController实例。您想与存储在控制器中的值进行比较。例如

nameController.value.text == ''

passwordController.value.text == ''


推荐阅读