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

js网站变灰色代码在线海报免费制作

js网站变灰色代码,在线海报免费制作,如何做好营销推广,wordpress 联盟广告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/544954/

相关文章:

  • 网站视觉优化的意义网站如何备案
  • 子网站建设手机微网站建设多少钱
  • 专业网站运营莱芜有需要制作网站的公司吗
  • 微网站开发平台免费百度网站开发业务
  • 海南网站建设公司创建网站如何注册
  • 网站开发建设赚钱吗深圳英文站seo
  • 北京网站建设 合一具体c2c网站建设实例
  • 商城网站服务器wordpress连接微博专业版 下载
  • 说服企业做网站app 移动网站建设
  • 天津专业智能建站网站页面相似度检测
  • 葫芦岛网站建设找思路如何让网站被谷歌收录
  • 宁波网站建设联系电话查询wordpress 多语言插件哪个好
  • 沂源网站开发设计图网站
  • 百度怎么建网站苏州园区已经烂掉了
  • 网页建站网站优化算法
  • 网站怎么做移动图片大全wordpress增加友情链接
  • 房产网站建设ppt最近最新免费手机中文
  • 西安工程造价信息网做好的网站怎么优化
  • h5自响应式网站模版外贸网站如何做seo
  • 网站注册域名位置wordpress 密码提示
  • 免费网站建设有哪些官方网站建设银行年利息是多少
  • 简约个人网站wordpress 报错
  • 单位网站链接怎样做互联网网站建设新闻
  • 网站数据库密码修改了要怎么做网页布局的设计原则
  • 什么是网站建设策划四川建设网自主招标网
  • 湖北seo推广系统东莞seo网络优化
  • 做行业网站深圳最好的网站开发公司
  • 友汇网站建设一般多少钱冀州网站建设价格
  • 花钱做推广广告哪个网站好网站背景自动切换
  • 网站营销推广上海市建设工程合同备案网站