[英]return a list from a future in flutter
嗨,我是颤振和异步编程的新手。 我需要做这样的事情:
List<Widget> usersProfiles = [];
getUsers('DcofOiHWcjbjD0i18miW').then((user) {
user.forEach((u) {
usersProfiles.add(new ListTile(
leading: CircleAvatar(
backgroundImage: AssetImage(u.profilePicture),
),
trailing: u.icon,
title: new Text(u.name),
onTap: () {
Navigator.push(context,
new MaterialPageRoute(builder: (context) => new Home()));
},
));
});
});
但usersProfiles
返回null
我会很伟大
我会推荐FutureBuilder或StreamBuilder (用于流),它们为您提供布局性能优势以及轻松添加加载和错误小部件的工具。 它可能如下所示:
Future<List<User>> usersFuture = getUsers('DcofOiHWcjbjD0i18miW');
将未来创建为成员变量,以便您只获取一次(以防该方法每次调用它时都会启动一个新的未来)。 然后在 FutureBuilder 中使用它。
FutureBuilder<List<User>>(
future: usersFuture,
builder: (context, snapshot) {
if(snapshot.connectionState != ConnectionState.done) {
// return: show loading widget
}
if(snapshot.hasError) {
// return: show error widget
}
List<User> users = snapshot.data ?? [];
return ListView.builder(
itemCount: users.length,
itemBuilder: (context, index) {
User user = users[index];
return new ListTile(
leading: CircleAvatar(
backgroundImage: AssetImage(user.profilePicture),
),
trailing: user.icon,
title: new Text(user.name),
onTap: () {
Navigator.push(context,
new MaterialPageRoute(builder: (context) => new Home()));
},
);
});
});
Future<Solution> JuniorDeveloperQuestion {
// use Expansion List with Dynamic Data
return _2021.Solution.ExpansionListWithDynamicData;
}
https://dev.to/rrtutors/dynamic-expansiontile-create-expansion-list-with-dynamic-data-2hl3
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.