启动时颤动的空地图

Empty map on flutter when initiating


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

第一次打印时,它 returns 我是用户。但是,在第二个没有。我需要获取用户信息。我该怎么做?

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