当前位置: 首页 > 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.bjxfkj.com.cn/article/100801.html

相关文章:

  • 中企动力是国企还是私企搜索关键词优化
  • 网站静态和动态区别网络营销的概念和含义
  • 自己做图片上传网站如何自己做引流推广
  • 做网站优化公司云客网平台
  • 东莞网站建设 兼职竞价推广托管多少钱
  • 用dw做购票网站模板seo高手是怎样炼成的
  • 网站建设公司响应式网站模板下载百度新版本更新下载
  • 微信小程序开发工具pc6网络营销乐云seo
  • 做网站服务器多大的好厨师培训机构 厨师短期培训班
  • 北京公司网站制作电话焊工培训班
  • 建设h网站风险大吗短视频seo营销
  • 学校网站建设策划青岛网站建设哪家好
  • 上海做网站公司qinmoo购物网站制作
  • wordpress注册页面美化seo公司优化排名
  • 简单的wordpress模板福州seo代理计费
  • vs2013做网站教程百度seo网站优化
  • 泰安网站开发公司seo公司是什么
  • 女生做运营以后的发展前端性能优化
  • 如何设计和建立一个公司的网站网站推广软文范例
  • 做h的动漫在线观看网站我要推广
  • 南京 做网站竞价排名的服务模式是
  • 高密做网站哪家强代理谷歌搜索引擎免费入口
  • 网页托管北京seo百度推广
  • 引航博景网站做的好吗友情链接有什么用
  • 路桥做网站中国教师教育培训网
  • 上海做网站的整站优化seo
  • 学校网站 建设 价格晋城网站seo
  • 上海市奉贤区建设局网站友情链接网站源码
  • 网站 宗旨东莞软文推广
  • 深圳品牌设计公司哪家好seox