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

网站建设推广销售人员wordpress播放器修改

网站建设推广销售人员,wordpress播放器修改,农资网站建设,WordPress要学多久flutter开发实战-父子Widget组件调用方法 在最近开发中遇到了需要父组件调用子组件方法#xff0c;子组件调用父组件的方法。这里记录一下方案。 一、使用GlobalKey 父组件使用globalKey.currentState调用子组件具体方法#xff0c;子组件通过方法回调callback方法调用父组…flutter开发实战-父子Widget组件调用方法 在最近开发中遇到了需要父组件调用子组件方法子组件调用父组件的方法。这里记录一下方案。 一、使用GlobalKey 父组件使用globalKey.currentState调用子组件具体方法子组件通过方法回调callback方法调用父组件的方法。 例如示例中的 例如父组件 父组件使用globalKey.currentState调用子组件方法 globalKey.currentState?.subFunction(arg); class FatherOutContainer extends StatefulWidget {const FatherOutContainer({super.key});overrideStateFatherOutContainer createState() _FatherOutContainerState(); }class _FatherOutContainerState extends StateFatherOutContainer {overridevoid initState() {// TODO: implement initStatesuper.initState();}overridevoid dispose() {// TODO: implement disposesuper.dispose();}// 这里是父组件方法void fatherFunction(String param) {print(这里是父组件方法 params:${param});}overrideWidget build(BuildContext context) {return Container(width: 375,height: 600,color: Colors.amber,child: Column(mainAxisAlignment: MainAxisAlignment.center,crossAxisAlignment: CrossAxisAlignment.center,children: [SizedBox(width: 20,height: 100,),SubChild(key: globalKey,onPressedCallback: (param) {fatherFunction(param);},),SizedBox(width: 20,height: 40,),TextButton(child: Text(点击调用子组件方法),onPressed: () {String arg 来自父组件的参数;globalKey.currentState?.subFunction(arg);},),Expanded(child: Container()),],),);} } 子组件代码 子组件通过方法回调onPressedCallback方法调用父组件的方法。 onPressedCallback: (param) { fatherFunction(param); }, GlobalKey_SubChildState globalKey GlobalKey();// 子组件Widget class SubChild extends StatefulWidget {const SubChild({super.key,required this.onPressedCallback,});final Function(String param) onPressedCallback;overrideStateSubChild createState() _SubChildState(); }class _SubChildState extends StateSubChild {overridevoid initState() {// TODO: implement initStatesuper.initState();}overridevoid dispose() {// TODO: implement disposesuper.dispose();}// 这里是子组件方法void subFunction(String arg) {print(这里是子组件方法 arg:${arg});}overrideWidget build(BuildContext context) {return Container(width: 300,height: 300,color: Colors.greenAccent,child: Container(width: 200,height: 50,child: TextButton(child: Text(点击调用父组件方法, style: TextStyle(color: Colors.brown),),onPressed: () {onSubBtnPressed();},),));}// 点击调用父组件方法void onSubBtnPressed() {print(点击调用父组件方法);String param 来自子组件的参数;widget.onPressedCallback(param);} } 二、使用Controller中间控制器 2.1、定义Controller这里定义中间的方法调用的类 // 使用Controller类来调用方法 class MethodController {// 用此方法调用子组件方法Function(String arg)? dealSubFunction;// 用此方法调用父组件方法Function(String arg)? dealFatherFunction; } 2.2、父组件代码 父组件通过定义methodController.dealFatherFunction子组件可以调用该方法进行调用父组件的方法 // 定义 methodController.dealFatherFunction (String arg) {// 调用父组件方法fatherFunction(arg);}; 父组件完整代码 class FatherOutContainer extends StatefulWidget {const FatherOutContainer({super.key});overrideStateFatherOutContainer createState() _FatherOutContainerState(); }class _FatherOutContainerState extends StateFatherOutContainer {final MethodController methodController MethodController();overridevoid initState() {// TODO: implement initStatesuper.initState();methodController.dealFatherFunction (String arg) {// 调用父组件方法fatherFunction(arg);};}overridevoid dispose() {// TODO: implement disposesuper.dispose();}// 这里是父组件方法void fatherFunction(String param) {print(这里是父组件方法 params:${param});}overrideWidget build(BuildContext context) {return Container(width: 375,height: 600,color: Colors.amber,child: Column(mainAxisAlignment: MainAxisAlignment.center,crossAxisAlignment: CrossAxisAlignment.center,children: [SizedBox(width: 20,height: 100,),SubChild(methodController: methodController,),SizedBox(width: 20,height: 40,),TextButton(child: Text(点击调用子组件方法),onPressed: () {String arg 来自父组件的参数;if (methodController.dealSubFunction ! null) {methodController.dealSubFunction!(arg);}},),Expanded(child: Container()),],),);} } 2.3、子组件 子组件通过定义methodController.dealSubFunction父组件可以调用该方法进行调用子组件的方法 // 定义 widget.methodController.dealSubFunction (String arg) {// 调用子方法subFunction(arg);}; 子组件完整代码 // 子组件Widget class SubChild extends StatefulWidget {const SubChild({super.key,required this.methodController,});final MethodController methodController;overrideStateSubChild createState() _SubChildState(); }class _SubChildState extends StateSubChild {overridevoid initState() {// TODO: implement initStatesuper.initState();widget.methodController.dealSubFunction (String arg) {// 调用子方法subFunction(arg);};}overridevoid dispose() {// TODO: implement disposesuper.dispose();}// 这里是子组件方法void subFunction(String arg) {print(这里是子组件方法 arg:${arg});}overrideWidget build(BuildContext context) {return Container(width: 300,height: 300,color: Colors.greenAccent,child: Container(width: 200,height: 50,child: TextButton(child: Text(点击调用父组件方法,style: TextStyle(color: Colors.brown),),onPressed: () {onSubBtnPressed();},),));}// 点击调用父组件方法void onSubBtnPressed() {print(点击调用父组件方法);String param 来自子组件的参数;if (widget.methodController.dealFatherFunction ! null) {widget.methodController.dealFatherFunction!(param);}} } 三、小结 flutter开发实战-父子Widget组件调用方法。这里使用的Globalkey调用子组件方法通过子组件的方法回调调用父组件的方法。还可以通过Controller类来控制方法调用父子组件对应方法。父子组件方法调用的方式还可以通过事件通知等方法实现调用。 学习记录每天不停进步。
http://www.dnsts.com.cn/news/82945.html

相关文章:

  • 成都科技网站建设费合肥专业网站优化
  • 北京网站建设公司分形免费推广引流
  • 有哪些网站可以做青旅义工温州移动互联网开发
  • 重庆市门户网站制作泳衣服饰东莞网站建设
  • 专做网游视频的网站考试系统 微网站是什么样的
  • 自己怎么创建一个网站ordown wordpress
  • 定制网站模板站织梦网站代码
  • 竞价单页网站策划设计制作忘记密码wordpress
  • 合肥商城网站建设多少钱做网站的公司叫什么问题
  • 南通网站开发公司万网网站后台管理系统
  • 互动网站欣赏柳州seo培训
  • 厦门网站制作推广株洲网站做的好的公司
  • 网站上线 流程公司装修费用会计分录
  • 公司做网站是管理费用半路学网站建设难吗
  • seo优化无锡网站建设优化建站
  • 网站如何做双链路ppt模板大全免费简约大气
  • 微信对接网站群做微商做什么网站比较好
  • 百度 手机网站收录国外网站搜索引擎优化方案
  • 北滘企业网站开发网站动态背景欣赏
  • 潍坊集团网站建设响应试网站和移动端
  • 云南公司网站建设给别人做金融网站 犯法吗
  • 手机网站如何推广网页制作用哪个软件
  • 简述网站设计步骤网站设计时尚
  • 网站建设交流qq网站建设工作计划
  • 郑州做音响网站的公司群推广
  • html网站模板下载深圳有限公司
  • 国人在线做网站怎么样长春 行业网站
  • 建设银行缴费网站登录成都网页制作推广
  • 廊坊电子网站建设天元建设集团有限公司人力资源部电话
  • 网站策划与建设阶段的推广的目标建设网站需要做什么的