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

网站代码快捷键淄博seo网络公司

网站代码快捷键,淄博seo网络公司,网站建设公司做网站要多少费用,做移动端网站软件开发文章目录 概念介绍使用方法示例代码 我们在上一章回中介绍了"如何实现文件存储"相关的内容,本章回中将介绍 如何实现组件之间共享数据。闲话休提,让我们一起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.tj-hxxt.cn/news/41393.html

相关文章:

  • 南京政府门户网站建设问题网站seo站外优化
  • 怎么样做网站的目录结构推广优化网站排名教程
  • 网站建设网上接单长沙关键词快速排名
  • b站黄页推广网站整站seo排名外包
  • 河北省住房和城乡建设部网站免费有效的推广平台
  • 昆明做网站哪家好哈尔滨关键词优化方式
  • 网站制作价格东莞168推广网
  • 怎样做酒店网站ppt品牌运营具体做什么
  • pc网站开发seo技术培训广东
  • 长沙建网站的全球十大搜索引擎排名及网址
  • 怎样分析网站做seo东营网站建设
  • 怎样做网站公司的销售外贸营销推广
  • 全网通网站网络营销的四个特点
  • 算命网站该怎样做深圳最新消息
  • 医学网站建设风格上海疫情最新情况
  • 广东h5网站建设网络舆情处理公司
  • 怎么拥有自己的网站西安百度推广网站建设
  • 如何申请一个自己的网站谷歌搜索引擎入口2021
  • 常州网站seo代理加盟百度霸屏推广一般多少钱
  • cae毕业设计代做网站品牌seo是什么
  • 台州外贸网站建设日照网站优化公司
  • 阿里巴巴国际站下载关键词什么意思
  • 服饰视频网站建设百度网盘客服电话24小时
  • 专业简历制作网站推荐品牌宣传方式
  • wordpress 后台子菜单百度推广优化排名怎么收费
  • 日本向中国收二维码费用关键词优化报价推荐
  • 做网站好赚钱网上怎么免费推广
  • 检察院门户网站建设自查报告百度搜索引擎服务项目
  • windows做的ppt下载网站网址推荐
  • 购买域名后 可以做网站么网上seo研究