Flutter:单例数据,getter调用为null

时间:2018-09-13 18:12:49

标签: http null singleton flutter

从http请求中检索数据(用户)后,我想将此数据放入单例中。然后,在另一个视图中,我想在边栏中显示该用户的名称,但是它说“ getter'user'被调用为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,
            ...

1 个答案:

答案 0 :(得分:2)

您在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()函数中进行