当前位置: 首页 > 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.15wanjia.com/news/33103.html

相关文章:

  • 做洁具最好的网站最新国际新闻50条简短
  • 网站腾讯qq对话框怎么做最新营销模式有哪些
  • 北京微信网站设计费用百度指数查询官网大数据
  • 做高端网站建设seo渠道是什么意思
  • 建设网站制作实训报告网络营销的特征
  • 济南学习做网站seo排名优化推广教程
  • 做网站济宁自助优化排名工具
  • 性是怎么做视频网站seoul
  • 做网站的教程google关键词搜索工具
  • 肇庆网站建设方案优化网站视频
  • 工业设计网站排行榜前十名有哪些软文营销案例文章
  • 网站备案后怎么做网站流量查询网站统计查询
  • 广州五屏网站建设seo自动点击排名
  • wordpress制作友情链接页面百度关键词优化公司
  • 惠州公司做网站关键词歌词图片
  • 做网站模板 优帮云茂名百度seo公司
  • 广州网站制作功能陕西网页设计
  • 网站建设颊算网站推广工作
  • 贵州做农业网站seo建站工具
  • 小米商城网页设计论文百度seo公司
  • 北京网站设计公司兴田德润怎么样下载百度app最新版到桌面
  • 做网站开发学什么语言app推广
  • 宿迁网站制作网站多少钱
  • 本地电脑做视频网站 外网连接网站怎么宣传
  • 网站建设方案云盘百度百科推广费用
  • 有什么网站做热图网店运营与管理
  • 公司门户网站怎么做seoul怎么读
  • 怎么做网站自动采集数据库网络舆情监测中心
  • 微信公众号里的网站怎么做的网站源码交易平台
  • 做网站租什么服务器网络营销专业主要学什么