Flutter提供程序变量不变

时间:2020-06-25 00:46:08

标签: flutter flutter-provider

我正在使用flutter提供程序包。我制作了一个用于更改变量(setUserInfo)值的函数,并从Future函数中调用了它(从API获得响应之后),并设置了要从UI调用的getter(getUsername)以获取该值。当我在第一个函数中使用print来显示新值时,我看到该值已更改,但是当我调用getter来获取该值时,它返回null(因此实际上并没有改变)。我收到此错误:

必须将非空字符串提供给“文本”窗口小部件。 'package:flutter / src / widgets / text.dart': 断言失败:第298行pos 10:'data!= null'

提供程序类:

class LoginProvider extends LoginService with ChangeNotifier {
String _username;
void setUserInfo(username) {
    _username = username;
    print(_username);
    notifyListeners();
  }

get getUsername{
return _username;
}
/*
....
  */

UI

 Widget build(BuildContext context) {
    double height = MediaQuery.of(context).size.height;
    var loginProvider = Provider.of<LoginProvider>(context);
    return Drawer(
        child: Container(
/*
 ..
  */
                  ListTile(
                    trailing: DrawerButton(),
                    title: Text(
                      loginProvider.getUsername,
                      textAlign: TextAlign.right,
                      style:
                          TextStyle(fontSize: 20, fontWeight: FontWeight.w700),
                    ),
                  ), 
/* 
... 
*/

0 个答案:

没有答案