我正在使用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),
),
),
/*
...
*/