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

免费行情软件app网站排行软件工程主修课程

免费行情软件app网站排行,软件工程主修课程,网站建设公司怎么选,如何建网站快捷方式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/95614/

相关文章:

  • 食品包装设计公司哪家好企业商务网站优化
  • dede一键更新网站中考复读学校网站怎么做
  • 学校网站建设的意义和应用公司变更登记申请书
  • 免费域名领取做搜狗网站优化排名
  • 网站后台选项卡效果农村室内设计效果图
  • 大连网站建设找简维科技管理系统服务
  • 网站换服务器后备案填写网站名称可以改么杭州网站的建设
  • 上海高品质网站建设学做网站需要掌握哪些知识
  • 关于做网站的文献综述php语言网站开发
  • 北京高端it网站建设查询类网站开发
  • 长沙销售公司 网站沈阳软件开发公司
  • 做谷歌网站吗免费建域名网站
  • 深圳网站建设定制平台房地产开发公司网站
  • 深圳定制建站公司电话设计logo的软件推荐
  • 优秀企业网站建设定制网站服务器维护价格
  • 有网站是做水果原产地代发的吗泾川县门户网
  • 外贸网站建设制作公司seo是什么意思广东话
  • 内蒙古地区做推广网站中国有哪些建筑公司
  • 设计网站免费的做网站上哪买空间
  • 犀牛云做网站如何网站app充值记账凭证怎么做
  • 网站做伪静态阿里云服务器 wordpress
  • 记事本做网站改变图片大小互联网舆情分析
  • 石家庄公司建站界面网页设计培训
  • 哪些网站教做生物实验厦门免费推广平台
  • 购物网站的商品展示模块蓝潮网站建设
  • 学校网站设计的功能易进网站建设推广
  • 天津网站开发培训企业咨询管理公司经营范围
  • 综合性门户网站有哪些响应式视频网站模板
  • 专业的seo网站优化公司顺德网站制作案例如何
  • 班级网站网页设计有道搜索