Flutter:Singleton数据,getter调用null
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flutter:Singleton数据,getter调用null相关的知识,希望对你有一定的参考价值。
在我从http请求中检索数据(用户)之后,我想将这些数据放入单例中。然后,在另一个视图中,我想在侧边栏中显示该用户的名称,但它说“getter'用户'在null上调用。”这是我的代码:
var user = await getUser(_username, _password);
if (user.loginError == false){
model.user = user;
Navigator.of(context).pushNamedAndRemoveUntil(
'/home_view', ModalRoute.withName('/home_view'));
}
这是我尝试使用user.name的时候:
Widget hamburgerMenu() {
Model model;
return new Drawer(
child: ListView(
children: <Widget>[
new UserAccountsDrawerHeader(
accountName: Text(model.user.name,
...
答案
在hamburgerMenu()
你宣布Model model;
,但你永远不会给它任何价值。它将始终为null。如果它是单身,你需要做这样的事情
Widget hamburgerMenu() {
Model model = Model.instance;//You fetch the instance of the singleton
return new Drawer(
child: ListView(
children: <Widget>[
new UserAccountsDrawerHeader(
accountName: Text(model.user.name,
...
另外,不要在构建函数中执行此操作。如果它是一个有状态小部件,请在initState()
函数中执行
以上是关于Flutter:Singleton数据,getter调用null的主要内容,如果未能解决你的问题,请参考以下文章
关于 flutter_boost监听flutter页面生命周期
Flutter-如何在flutter的整个应用程序生命周期中将数据保存在内存中?
Flutter: Unsupported value: false/true
Caused by: org.hibernate.property.access.spi.PropertyAccessBuildingException: Could not locate gette
Error querying database. Cause: org.apache.ibatis.reflection.ReflectionException: There is no gette