从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,
...
答案 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()
函数中进行