Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.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

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上获取用户名 /// Gets the current and prior accounts. Future<dynamic> handleGetAccount() async { // <-- Replace dynamic

我有一个获取当前登录用户名并将其保存到共享首选项的代码。我面临的问题是,每当用户第一次登录时,用户名都不会显示,但当我在应用程序上重新加载时,用户名会显示在屏幕上。我怎么能在第一次加载时加载用户名而不进行热加载呢

我如何在SharedReference上获取用户名

/// Gets the current and prior accounts.
  Future<dynamic> handleGetAccount() async { // <-- Replace dynamic with type of currentAccount

    final result = await msal.getAccount();
    if (result.currentAccount != null) {
      SharedPreferences sharedPreferences = await SharedPreferences.getInstance();
      sharedPreferences.setString("username", result.currentAccount.username);
      //print(result.currentAccount.username);
      return result.currentAccount;

    } else {
      print('no account found');
      return null;
    }
  }
如何在主屏幕上显示用户名并显示用户名

 class Home extends StatefulWidget {
  const Home({Key key}) : super(key: key);

  @override
  HomeState createState() => new HomeState();
}

class HomeState extends State<Home> {
  final TrackingScrollController _trackingScrollController =
      TrackingScrollController();
  String username = "";

  @override
  void initState() {
    getName();
  }

  Future<String> getName() async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    username = prefs.getString("username");
    return username;
  }
class Home扩展StatefulWidget{
常量Home({Key}):super(Key:Key);
@凌驾
HomeState createState()=>new HomeState();
}
类HomeState扩展到State{
最终跟踪CrollController\u跟踪CrollController=
TrackingScrollController();
字符串username=“”;
@凌驾
void initState(){
getName();
}
Future getName()异步{
SharedReferences prefs=等待SharedReferences.getInstance();
用户名=prefs.getString(“用户名”);
返回用户名;
}
因为getName()是一个异步方法,所以在获取username之后应该调用
setState((){})

void getName() async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  username = prefs.getString("username");
  setState((){});
}
void getName() async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  username = prefs.getString("username");
  setState((){});
}