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

专业做网站建设 昆山英国公司注册

专业做网站建设 昆山,英国公司注册,推广网站的作用,一个营业执照可以做两个网站flutter开发实战-使用FutureBuilder异步数据更新Widget 在开发过程中,经常遇到需要依赖异步数据更新Widget的情况,如下载图片后显示Widget,获取到某个数据时候,显示在对应的UI界面上,都可以使用FutureBuilder异步数据…

flutter开发实战-使用FutureBuilder异步数据更新Widget

在开发过程中,经常遇到需要依赖异步数据更新Widget的情况,如下载图片后显示Widget,获取到某个数据时候,显示在对应的UI界面上,都可以使用FutureBuilder异步数据更新Widget。

一、FutureBuilder

FutureBuilder是一个Widget,该Widget基于与Future]交互的最新快照构建的。

/// Creates a widget that builds itself based on the latest snapshot of/// interaction with a [Future].////// The [builder] must not be null.const FutureBuilder({super.key,this.future,this.initialData,required this.builder,}) : assert(builder != null);

其中

  • future:final Future? future; 是一个异步的任务;

  • builder:final AsyncWidgetBuilder builder;是创建显示的Widget,可以根据AsyncSnapshot<String?> snapshot来确定显示的Widget,可以在Future执行过程中被调用多次。

二、使用FutureBuilder

这里使用FutureBuilder的示例,我是通过加载网页时候,需要将Webview中设置cookie,cookie中需要设置token。token需要获取到再设置到Webview中的cookie中。

获取token

Future<String?> _getToken() async {final token = (await SessionDataService.sessionData)?.token;if (token == null) return null;return token;}

使用FutureBuilder用来在获取token后更新Webview,先判断snapshot.hasData是否有数据。如果有数据,则直接显示Webview,如果没有数据,则显示默认的Container。

FutureBuilder<String?>(future: _getToken(),builder: (BuildContext context, AsyncSnapshot<String?> snapshot) {if (snapshot.hasData) {final token = snapshot.data;if (token == null) return Container();return WebView(javascriptMode: JavascriptMode.unrestricted,initialUrl: url,initialCookies: [WebViewCookie(name: "auth", value: "token", domain: "inice.cn"),],userAgent: "inice.cn",onWebViewCreated: (controller) {cookieManager.setCookies([Cookie('auth', token)..domain = 'inice.cn'..httpOnly = false,]);webController = controller;},);}return Container();},),

完整代码如下

class WebViewScreen extends StatelessWidget {WebViewScreen({Key? key, required this.url}) : super(key: key);final String url;WebViewController? webController;final cookieManager = WebviewCookieManager();Future<String?> _getToken() async {// final token = (await SessionDataService.sessionData)?.token;final token = ApiAuth().token;if (token == null) return null;return token;}Widget build(BuildContext context) {return Scaffold(body: Stack(children: [Container(color: Colors.amber,),SafeArea(bottom: false,child: FutureBuilder<String?>(future: _getToken(),builder: (BuildContext context, AsyncSnapshot<String?> snapshot) {if (snapshot.hasData) {final token = snapshot.data;if (token == null) return Container();return WebView(javascriptMode: JavascriptMode.unrestricted,initialUrl: url,initialCookies: [WebViewCookie(name: "auth", value: "token", domain: "inice.cn"),],userAgent: "inice.cn",onWebViewCreated: (controller) {cookieManager.setCookies([Cookie('auth', token)..domain = 'inice.cn'..httpOnly = false,]);webController = controller;},);}return Container();},),),],),);}
}

三、小结

flutter开发实战-使用FutureBuilder异步数据更新Widget。描述可能不是特别准确,请见谅。

https://blog.csdn.net/gloryFlow/article/details/133490457

学习记录,每天不停进步。

http://www.yayakq.cn/news/350710/

相关文章:

  • 淄博学校网站建设方案网站开发 前端 后端
  • 信阳做网站优化wordpress导入用户数据库
  • 传媒公司网站建设方案线上营销推广方案有哪些
  • 如何 做网站动漫制作专业要多少分
  • 做网站的流程视频教程网站右下角代码
  • 有没有人与动物做的电影网站装修设计比较好的网站
  • 龙海市住房和城乡建设局网站广东新闻联播回放
  • h5网站开发 源码杭州app定制开发
  • 青岛做网站定制招商网官网
  • 建设网站要什么手续做新网站怎样提交360
  • 宿迁网站建设案例wordpress彩带背景
  • 能自己做网站接业务吗漳州 网站设计
  • 自己有网站怎么做优化html5手机端开发软件
  • 电影网站的设计与实现论文广西新宇建设项目有限公司网站
  • 怎么样做微网站建设网站服务费会计分录
  • 学校手机网站建设做旅游网站推广
  • angular2.0网站制作关键词网站推广
  • 北京模板网站开发公司网站建设技术课程设计
  • 临近做网站百度做的网站
  • 保定哪里有做网站的搭建网站 在线浏览功能
  • 网站后台模板长沙微信网站
  • 大学网站建设定制网站建设网站如何不需要备案
  • 网站内备案名称 修改做外汇需要了解的网站
  • 在线营销型网站制作备案信息查询官网
  • 做网站 页面自适应外贸网站如何建设
  • angularjs 网站开发做的最好自考网站是哪个
  • ui网站模板网络营销模式案例分析
  • 素材解析网站搭建付费 视频 网站 怎么做
  • 网站建设心得.doc制作开发app需要多少钱
  • 网站开发后端菜鸟教程如果我的网站被百度收录了_以后如何做更新争取更多收录