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

部门网站建设情况汇报网站安全建设费用预算表

部门网站建设情况汇报,网站安全建设费用预算表,哪个网站可以搭建网页,天津推广的平台InheritedWidget和React中的context功能类似,可以实现跨组件数据的传递。 定义一个共享数据的InheritedWidget,需要继承自InheritedWidget 这里定义了一个of方法,该方法通过context开始去查找祖先的HYDataWidget(可以查看源码查找…

InheritedWidget和React中的context功能类似,可以实现跨组件数据的传递。
定义一个共享数据的InheritedWidget,需要继承自InheritedWidget

  • 这里定义了一个of方法,该方法通过context开始去查找祖先的HYDataWidget(可以查看源码查找过程)
  • updateShouldNotify方法是对比新旧HYDataWidget,是否需要对更新相关依赖的Widget
// 数据共享
class DataWidget extends InheritedWidget {
// 1、共享的数据final int counter;
// 2、定义构造方法const DataWidget({super.key, required this.counter, required Widget child}): super(child: child);
// 3、获取组件最近的当前InheritedWidgetstatic DataWidget? of(BuildContext context) {// 沿着Element树,去找最近的CounterElement,从Element中取出Widget对象return context.dependOnInheritedWidgetOfExactType();}// 4、 决定要不要回调State中的didChangeDependencies 方法bool updateShouldNotify(covariant DataWidget oldWidget) {// 如果返回true:执行依赖当前的InheritedWidget的state中的  didChangeDependenciesreturn counter != oldWidget.counter;}
}

使用定义的 DataWidget 共享数据

class _MyHomePageState extends State<MyHomePage> {HomeRequest homeRequest = HomeRequest();int data = 100; // 定义一个共享数据变量void initState() {super.initState();Logs("_MyHomePageState", StackTrace.current);homeRequest.getMovieTopList(0, 20).then((value) {});}Widget build(BuildContext context) {return Scaffold(// 脚手架appBar: AppBar(title: Text(widget.title),),body: DataWidget( // 需要在共享数据组件的父类上继承DataWidgetcounter: data, // 将数据传递给共享数据 counterchild: Center(child: Column(mainAxisAlignment: MainAxisAlignment.center,children: [HYShowData01(),HYShowData02(),],),)),// 定义一个 按钮点击自动增加数据floatingActionButton: FloatingActionButton(child: Icon(Icons.add),onPressed: () {setState(() {data++;});},),);}
}class HYShowData01 extends StatelessWidget {Widget build(BuildContext context) {int? _counter = DataWidget.of(context)?.counter; // 使用共享数据return Container(color: Colors.red,child: Text("共享状态:${_counter}"),);}
}class HYShowData02 extends StatefulWidget {State<HYShowData02> createState() => _HYShowData02State();
}class _HYShowData02State extends State<HYShowData02> {void didChangeDependencies() {// TODO: implement didChangeDependenciessuper.didChangeDependencies();}Widget build(BuildContext context) {int? _counter = DataWidget.of(context)?.counter;return Container(color: Colors.blue,child: Text("共享状态:${_counter}"),);}
}
http://www.yayakq.cn/news/854688/

相关文章:

  • 苏州公司建设网站wordpress 定制缩略图
  • 手机能建设网站贵州省建设厅省外企业官方网站
  • 电商网站设计的流程全屏式网站
  • 浙江新东阳建设集团有限公司网站建设网贷网站
  • 做百度网站排比较好的做网站
  • 跨国网站怎么做网站为什么会出现死链
  • 手机网站开发专业七牛做网站
  • 重庆网站设计最佳科技免费做图素材网站有哪些
  • 温州公司建设网站制作社群营销与运营
  • 网站支付体现功能怎么做腾讯外贸电商平台
  • 网页设计购物网站建设济南抖音推广公司
  • 如何建站网站泰安网站建设方案书
  • 百度站点提交工具广州哪家公司做网站
  • 网站开发专业就业前景分析wordpress+jetpack插件
  • 制作网站注册登录模块的思维导图公司简介视频制作
  • 中国营销网站3800给做网站
  • seo做得好的企业网站wordpress必须登录
  • 宁波专业网站营销公司开通网站
  • 怎样去各大网站做淘宝推广项目加盟网
  • 在网站开发中哪里需要js文件开发手机网站用什么好处
  • 查询建设工程规范的网站网站开发薪水
  • 织梦网站统计代码html基础菜鸟教程
  • 浙江网站建设哪家好手机类网站设计
  • 备案的网站名称能重复备案吗大学一学一做视频网站
  • 做外贸网站义乌天津网站优化哪家快
  • 网站盈利方法vs215开发python网站开发
  • 搬瓦工怎么做网站域名查询网入口
  • 专业的临沂网站优化win7做网站服务器卡
  • 建设银行泰州江洲路支行网站win7安装wordpress
  • 中国建设银行网站暑假工报名设计软件网站