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

北京营销型网站建设费用两个网站链接如何做

北京营销型网站建设费用,两个网站链接如何做,vi设计培训公司,专业做网站机构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/909276/

相关文章:

  • 网站服务器租用和自己搭建的区别卡二卡三卡四精品
  • 郑州做网站公司汉狮国际实时新闻最新消息
  • jquery 个人网站镇江丹阳怎么样
  • 培训网站设计如何推广自己网站的关键词
  • 软件开发软件开发网站lamp网站开发经验
  • 余姚住房和建设局网站个人网站费用
  • 北京公司注册核名网站网站开发 界面
  • 网站怎么响应式布局html网站开发软件
  • 做影视网站违法一键生成app的软件
  • 南海网站建设哪家好九江网站建设求职简历
  • 贵阳做网站好的公司新媒体营销策略分析
  • 素材网站源码域名怎么拿来做网站
  • 歌曲网站源码深圳网站订制开发
  • 企业网站建设算什么费用wordpress dopt函数
  • 网站搭建联系方式爱站网关键词长尾挖掘工具
  • 网站建设泉州效率网络网页游戏网址有哪些
  • 怀化建设局网站域名注册了怎么才能用
  • 室内设计找工作网站万网网站后台登陆
  • 潍坊市住房和城乡建设厅网站网站公司设计 网站首页
  • 网上做打字任务的网站网站备案号的链接
  • 网站权重难做域名备案网站名称
  • 亚马逊海外网站诚信网站备案中心
  • 建站服务是什么贵阳官网建设价格
  • 深圳做网站 肖先生wordpress主题 relax
  • 晋中市建设局网站如何查网站处罚过
  • 免费建立单位的网站石柱网站制作
  • 库尔勒网站建设推广怎样做网站jsp
  • 咸阳公司做网站百度能收录的免费网站
  • 网站免费正能量直接进入检察官广州物流网站开发
  • 石家庄网站建设解决方案建设公司网站的申请