栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

从未来中返回列表

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

从未来中返回列表

我建议使用FutureBuilder或StreamBuilder(用于流),它可以为您带来布局性能上的优势,还可以提供轻松添加加载和错误小部件的工具。看起来可能如下:

Future<List<User>> usersFuture = getUsers('DcofOiHWcjbjD0i18miW');

将future创建为成员变量,因此您只需提取一次(以防每次调用该方法都会启动一个新的future)。然后在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())); },          );      });  });


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/375177.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号