启动时颤振上的空映射

  • 本文关键字:映射 启动 flutter dart
  • 更新时间 :
  • 英文 :


Map user = {};
Future<void> getUser(String idProfile) async {
final response = await ac.getItem("/v2/users/:0", [idProfile]);
if (response.statusCode >= 200 && response.statusCode < 300) {
setState(() {
user = json.decode(response.body);
print(user);
});
}
}
@override
void initState() {
super.initState();
getUser(getCurrentUser());
print(user);
}

第一次打印时,它返回用户。然而,第二次却没有。我需要获取用户信息。我怎么能做到呢?

getUser是一个未来的方法,你需要等到它从API获取数据。当您使用StatefulWidget时,您可以在它从API获取数据时显示着陆指示。

如果在Column小部件内,

if (user.isEmpty) Text("fetching data") 
else LoadDataWidget(),

也可以使用三元运算符

Map user = {};
//Return a user from the function
Future<Map<String, dynamic>> getUser(String idProfile) async {
final response = await ac.getItem("/v2/users/:0", [idProfile]);
if (response.statusCode >= 200 && response.statusCode < 300) {
user = json.decode(response.body) as Map<String, dynamic>;
return user

}
else {
throw Exception();
}
}
// Set the user value in initstate 
@override
void initState() {
super.initState();
user = getUser(getCurrentUser());
print(user);
}

最新更新