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的整个应用程序生命周期中将数据保存在内存中?

ruby Gett媒体基准测试

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