Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 用户界面中未显示SharedReference值_Flutter_Dart_Sharedpreferences - Fatal编程技术网

Flutter 用户界面中未显示SharedReference值

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.

我正在从SharedReference检索用户数据,但无法在UI文本部分显示它,但只有在点击热重新加载时,检索的数据才会显示在UI文本中

 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') ?? '';
  });
}