当前位置: 首页 > 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/706507/

相关文章:

  • 用asp做旅游网站工信部门备案网站获取的icp备案号
  • 汕头网站推广制作怎么做平面设计速成班多少钱
  • 多国语言网站建设建设网站后怎么发布
  • 福田网站建设的工具网站无障碍建设报告
  • 茂名网站建设哪家好个人网站建设服务器
  • 南通做网站多少钱小语种建网站建设
  • 天津企业网站建设价格双鸭山市建设局网站
  • 申请主机网站杭州软件开发公司网站
  • 广东建设厅网站网站的建设公司
  • 如何用Python网站开发中英文外贸网站建设
  • 怎么用wordpress建立自己的网站吗天津关键词
  • 做移动端网站软件智能家居网站开发
  • wordpress大前端哪个好企业seo优化方案
  • 成都地区网站开发成本免费购物网站建设
  • 自学套模板做网站制作国外网站
  • 公司的网站建设费进入什么科目惠州建网站公司
  • 杭州网站建设有限公司建筑网官方网站
  • 昌平网站建设公司网站开发人员的前景
  • 能答题做试卷的网站wordpress安装不了
  • 全球网站访问量排名wordpress 4.9 google
  • 湖北专业网站建设耗材网络营销的盈利模式
  • 网站软件定制开发公司网站认证收费吗
  • 做网站需要什么资金建网站所需材料
  • 企业门户网站建设案例中国网建
  • 国内知名网站建设排名深圳找工作的网站
  • 如何撤销网站上信息上海的公司排行榜
  • 国外创意型网站设计外贸seo网站建站
  • 网站建设业务文案php个人网站模板
  • 网站什么语言好上海人才中心
  • 合肥网站建设公司排名c 网站开发教程