【发布时间】:2021-07-18 01:26:28
【问题描述】:
我有一个异步调用,它让我得到一个objects 的列表,我从中生成一个带有ListView.builder 的ListView。每个对象都有一个名为usedId 的属性,它是一个整数。
我正在尝试基于其id 获取user object。
这是我的 FutureBuilder:
FutureBuilder<MyObjects>(
future: getMyObjects(),
builder: (context, snapshot) {
if (snapshot.hasError) return Text('Error ${snapshot.error}');
if (snapshot.connectionState != ConnectionState.done) return Center(child: CircularProgressIndicator());
return ListView.builder(
itemCount: snapshot.data.content.length,
itemBuilder: (BuildContext context, int index) {
// Get user by its id
User user;
Future<User> futureUser = QuestionRestApi.getStatistics(snapshot.data.userId);
futureUser.then((data) {
print(user);
user = data;
});
return Text('Username: user.username');
}
)
}
);
我的用户被打印在 then() 函数中,但是因为它必须等待它。我只是不知道如何处理异步调用中的异步调用。
【问题讨论】:
标签: flutter listview dart asynchronous flutter-futurebuilder