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

游戏网站排行网站开发人员职位

游戏网站排行,网站开发人员职位,做网站要不要服务器,培训心得文章目录 概念介绍使用方法示例代码 我们在上一章回中介绍了"如何实现文件存储"相关的内容,本章回中将介绍 如何实现组件之间共享数据。闲话休提,让我们一起Talk Flutter吧。 概念介绍 数据共享是程序中常用的功能,本章回介绍如何…

文章目录

  • 概念介绍
  • 使用方法
  • 示例代码

我们在上一章回中介绍了"如何实现文件存储"相关的内容,本章回中将介绍 如何实现组件之间共享数据。闲话休提,让我们一起Talk Flutter吧。

概念介绍

数据共享是程序中常用的功能,本章回介绍如何在组件之间共享数据,不过这里提到的组件不是任意组件,主要指父组件与子组件,Flutter提供了InheritedWidget组件来实现共享数据的功能,本章回中将详细介绍如何使用该组件实现共享数据的功能。

使用方法

  1. 创建一个父类,类中至少包含两个属性:共享数据和子组件(child);
  2. 父类继承自InheritedWidget类,实现父类的中方法;
  3. 创建一个子类,子类中使用父类中共享的数据;
  4. 创建子类对象并且将它赋值给父类对象的子组件属性(childe);
  5. 更新父类中的共享数据,子组件中的共享数据会自动更新;

示例代码

///定义父组件,父组件包含一个共享数据data
class FatherWidget extends InheritedWidget {String data;FatherWidget({Key? key, this.data = "default data of Father", required Widget child}): super(key: key, child: child);///定义获取父组件的方法,方便子组件获取父组件中的数据static FatherWidget? of(BuildContext context) {///下面的方式可以通知子组件更新// return context.dependOnInheritedWidgetOfExactType<FatherWidget>();///下面的方式无法通知子组件更新return context.getElementForInheritedWidgetOfExactType<FatherWidget>()?.widget as FatherWidget;}///返回true时通知更新子组件中的data,也就是调用子组件的didChangeDependencies()方法bool updateShouldNotify(FatherWidget oldWidget) {return oldWidget.data != data;}
}///在子组件中使用父组件中的共享数据
class SonWidget extends StatefulWidget {const SonWidget({Key? key}) : super(key: key);State<SonWidget> createState() => _SonWidgetState();
}class _SonWidgetState extends State<SonWidget> {Widget build(BuildContext context) {String? data = FatherWidget.of(context)?.data;return Text("son data: $data",style: const TextStyle(color: Colors.white, fontSize: 24),);}void initState() {debugPrint("SonWidget: initState");}///父组件中的数据更新时会回调此方法void didChangeDependencies() {debugPrint("SonWidget: didChangeDependencies");}void dispose() {debugPrint("SonWidget: dispose");}void activate() {debugPrint("SonWidget: activate");}void deactivate() {debugPrint("SonWidget: deactivate");}void didUpdateWidget(SonWidget oldWidget) {debugPrint("SonWidget: didUpdateWidget");}
}children: [Container(width: 300,height: 100,alignment: Alignment.center,color: Colors.blue,child: FatherWidget(///父组件和子组件形成组件树data: _tempData,child: const SonWidget(),),),SizedBox(width: 200,height: 100,child: ElevatedButton(onPressed: () {setState(() {///更新父组件中的数据,子组件中数据会自动更新_tempData = "new data";});},child: const Text('Change data'),),),
],

代码中的FatherWidget是InheritedWidget的子类,重点关注一下of()方法的实现,通过该方法可以获取到FatherWidget的实例。该类中还有一个方法叫updateShouldNotify(),它决定是否更新子组件。

SonWidget本质上是Text组件的封装,它通过child属性与FatherWidget关联起来。代码中还提供了一个按钮,点击按钮时就会更新父组件中的数据,同时子组件中的数据也会被更新。我在这里就不演示程序的运行结果了,建议大家自己动手去实践。

看官们,关于"如何实现组件之间共享数据"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

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

相关文章:

  • 集团网站建设 中企动力提供购物网站建设
  • 正能量网站入口十大旅游网站排名
  • 公司网站建设需求分析只有域名可以做网站吗
  • 网站源码配置数据库在拿在word上怎么做网站链接
  • 成品短视频网站源码搭建免费网页制作图
  • 建设集团网站价格网页游戏排行榜前十平台
  • 百度风云榜官网北京企业网站seo
  • 网站建设策划实施要素有哪些访问外国网站很慢
  • 莱芜网站网站建设集团网站建设服务
  • 专业做网站联系方式宁波外贸网站设计公司
  • asp网站500错误iis7天河网站建设哪家好
  • 教育网站模板下载提供网站建设备案公司
  • 网站关键字怎么优化北京十大影视公司
  • 怎么做网站 先简单的聊一下怎样给网站做后台
  • 上网建站推广wordpress 获取自定义字段
  • 一个wordpress程序搭建多个网站海外域名购买
  • 广州3d网站开发深圳网站公司招聘
  • 色彩 导航网站功能型网站建设需要多少钱
  • 网站策划书包括哪些内容文学投稿网站平台建设
  • 上海平面网站网络营销今后的发展趋势
  • 怎么做查成绩网站网站建设优化项目
  • 德州口碑好的网站制作公司手机上如何制作自己的网站
  • 商务网站的建设台州网站建设找哪家好点
  • 网站策划书需求分析大学学术建设专题网站
  • 长沙网站排名优化贵州 网站建设
  • gta5买房子网站建设网站推广主要用的软件
  • 晓风彩票网站建设源代码授权新媒体营销的发展趋势
  • 卑鄙的网站开发公司wordpress code snippets
  • 网站导航结构的优化纯静态网站索引怎么做
  • 设置 wap网站dw网页制作源代码