Flutter 颤振中如何加载存储在SharedReference中的数据
我有一个获取当前登录用户名并将其保存到共享首选项的代码。我面临的问题是,每当用户第一次登录时,用户名都不会显示,但当我在应用程序上重新加载时,用户名会显示在屏幕上。我怎么能在第一次加载时加载用户名而不进行热加载呢 我如何在SharedReference上获取用户名Flutter 颤振中如何加载存储在SharedReference中的数据,flutter,dart,sharedpreferences,Flutter,Dart,Sharedpreferences,我有一个获取当前登录用户名并将其保存到共享首选项的代码。我面临的问题是,每当用户第一次登录时,用户名都不会显示,但当我在应用程序上重新加载时,用户名会显示在屏幕上。我怎么能在第一次加载时加载用户名而不进行热加载呢 我如何在SharedReference上获取用户名 /// Gets the current and prior accounts. Future<dynamic> handleGetAccount() async { // <-- Replace dynamic
/// 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((){});
}