flutter - 未定义名称用户
问题描述
我有 3 个屏幕,登录、主页和聊天。在聊天中我想使用用户,但由于某些原因我收到错误。
尝试将用户传递给聊天时主页类中的错误:'未定义的名称'用户''。
这里的代码示例:
class Login extends StatefulWidget {
@override
_LoginState createState() => _LoginState();
}
class _LoginState extends State<Login> {
String email;
String password;
final FirebaseAuth _auth = FirebaseAuth.instance;
final FirebaseAuth _firebaseAuth = FirebaseAuth.instance;
Future<String> login(String _email, String _password) async {
FirebaseUser user = (await _firebaseAuth.signInWithEmailAndPassword(
email: _email, password: _password))
.user;
() =>
Navigator.push(context, MaterialPageRoute(builder: (context) => Bar(user: user)));
}
...
为什么没有定义?我想通过 Homepage() 将用户从 Login() 传递到 Chat()。先感谢您
编辑: 我注意到它不仅在列表中定义,而且还可以正常工作。我怎样才能将它传递给列表?
class HomePage extends StatefulWidget {
final FirebaseUser user;
const HomePage({Key key, this.user}) : super(key:key);
@override
_BarState createState() => _BarState();
}
class _BarState extends State<HomePage> {
void test() {
() =>
Navigator.pushReplacement(context, MaterialPageRoute(builder: (context) =>
Chat(user: widget.user))); < ---- WORKING
}
int tabIndex = 0;
List<Widget> widgetOptions = [
Match(),
Chat(user: widget.user), < --- NOT WORKING
AddBook(),
Profile(),
];
解决方案
在这里,您要访问其他屏幕中的用户对象,而不是在 cconstructor 中传递它,而是创建一个单例类,像这样
class AuthUser {
static var authUserId;
static var email;
static var userName;
static var role;
static var companyId;
}
在登录时设置这样的值,请在这里检查 print(user); 并分别设置值
Future<String> login(String _email, String _password) async {
FirebaseUser user = (await _firebaseAuth.signInWithEmailAndPassword(
email: _email, password: _password))
.user;
() =>
AuthUser.email = user.email,
AuthUser.email = user.userName,
..........
));
}
访问其他屏幕中的数据,例如 AuthUser.email、AuthUser.userName.....
推荐阅读
- python - 从字符串到日期时间,查看当前(本地)时间
- pandas - 如何从 python 中的 2 个相关列表列创建一列?
- spring - Spring - 使用默认配置进行注释
- nlp - 如何在没有简洁惩罚的情况下计算 BLEU 分数
- ios - 如何创建对象的新实例并将其传递到数组 SwiftUI
- java - 从另一个类调用一个类中的局部变量
- oracle - OCI Ansible 异步收集切换数据库
- node.js - 字符串化为 json 时添加了额外的双引号
- java - 找不到资源/credentials.json
- influxdb - 如何在 InfluxDB 2.0 仪表板上获取查询变量?