Flutter 用户界面中未显示SharedReference值
我正在从SharedReference检索用户数据,但无法在UI文本部分显示它,但只有在点击热重新加载时,检索的数据才会显示在UI文本中Flutter 用户界面中未显示SharedReference值,flutter,dart,sharedpreferences,Flutter,Dart,Sharedpreferences,我正在从SharedReference检索用户数据,但无法在UI文本部分显示它,但只有在点击热重新加载时,检索的数据才会显示在UI文本中 String username = ""; @override void initState() { getPrefs(); super.initState(); } getPrefs() async { SharedPreferences prefs = await SharedPreferences.
String username = "";
@override
void initState() {
getPrefs();
super.initState();
}
getPrefs() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
username = prefs.getString('user_name') ?? '';
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
child: Text(username == "" ? "Username" : username, style: TextStyle(fontWeight: FontWeight.bold,),),
)
);
}
异步调用
getPrefs
。因此,在检索用户名值之前,将绘制用户界面
要解决这个问题,只要在获得用户名值后调用setState
,就会强制用户界面刷新
下面是一个快速实现:
getPrefs() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
setState(() {
username = prefs.getString('user_name') ?? '';
});
}