flutter - 颤动:不导航到另一个页面
问题描述
我想要得到的是当我以我应该能够进入另一个页面的形式输入 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()),
);
}
},
解决方案
nameController 和密码控制器只是TextEditingController
实例。您想与存储在控制器中的值进行比较。例如
nameController.value.text == ''
passwordController.value.text == ''
推荐阅读
- lisp - LISP - 编写函数 (REMOVE EL),从列表所有级别的另一个列表中删除给定的原子或列表
- sql-server - 存储过程中的所有语句都是一个事务吗
- android - Android Timestamps vs Unix Timestamps
- javascript - my for is running twice when it was supposed to run only once
- r - 为 R 中两个数据帧之间的日期范围内发生的事件创建指标变量
- yii2 - 验证选中的复选框数量
- python - 无法通过 python-requests 访问站点(被阻止?)
- java - 将双精度,双精度转换为双精度 []
- firebase - Firebase 的新版本 onAuthStateChanged -> authStateChanges 0
- sql - SQL - 使用 ORM 时,有时不将数据透视表用于 many_to_many 关系是否有意义?