当前位置: 首页 > news >正文

Flutter 处理异步操作并根据异步操作状态动态构建界面的方法FutureBuilder

概述

当界面的内容需要依靠网络请求的数据,就需要处理苦恼的,状态是空,非空的逻辑了,不然页面构建可能会报错,而FutureBuilder提供了一个非常好的解决方法,直接看代码

代码

异步操作函数

即网络请求函数(通常情况下)

Future<List<String>> fetchStringList() async {return Future.delayed(Duration(seconds: 2), () {// 模拟网络请求return ['Item 1', 'Item 2', 'Item 3'];});
}

widget构建部分

class MyApp extends StatelessWidget {@overrideWidget build(BuildContext context) {return MaterialApp(home: Scaffold(appBar: AppBar(title: Text('FutureBuilder Example'),),body: Center(child: FutureBuilder<List<String>>(future: fetchStringList(), // Future函数builder: (context, snapshot) {if (snapshot.connectionState == ConnectionState.waiting) {// 数据还在加载中,显示一个加载指示器return CircularProgressIndicator();} else if (snapshot.hasError) {return Text('Error: ${snapshot.error}');} else {return ListView.builder(itemCount: snapshot.data!.length,itemBuilder: (context, index) {return ListTile(title: Text(snapshot.data![index]),);},);}},),),),);}
}

可以看出来,这为需要异步操作的页面提供了更好的构建页面方式。

http://www.lryc.cn/news/308422.html

相关文章:

  • Git教程-Git的基本使用
  • Java解决长度为K子的数组中的的最大和
  • 【手机端测试】adb基础命令
  • 【数据结构】深入探讨二叉树的遍历和分治思想(一)
  • jQuery AJAX get() 和 post() 方法—— W3school 详解 简单易懂(二十四)
  • Linux中如何进行LVM逻辑卷扩容?
  • 现代企业架构框架——应用架构
  • 期货开户保证金保障市场正常运转
  • WebGIS----wenpack
  • 【Maven】Maven 基础教程(二):Maven 的使用
  • mirthConnect忽略HTTPS SSL验证
  • libvirt命名空间xmlns:qemu的使用
  • ywtool check命令及ywtool clean命令
  • java009 - Java面向对象基础
  • MWC 2024 | 广和通携手意法半导体发布智慧家居解决方案
  • threejs 大场景下,对小模型进行贴图处理
  • 云畅科技携手飞腾打造智慧园区信创低代码综合解决方案
  • Dell R730 2U服务器实践1:开机管理
  • 『大模型笔记』Sora:探索大型视觉模型的前世今生、技术内核及未来趋势
  • python中的字符串处理
  • java之servlet
  • 重推请求之curl和fiddler
  • 基于redis实现【最热搜索】和【最近搜索】功能
  • 1.2 debug的六种指令的使用,四个通用寄存器
  • C# OpenVINO Crack Seg 裂缝分割 裂缝检测
  • 前后端项目-part03
  • Java 1.8 docker 镜像制作
  • python中自定义报错
  • part1:sora技术
  • RK3568平台开发系列讲解(基础篇)文件私有数据