返回顶部
首页 > 资讯 > 移动开发 >Flutter框架中,组件间传值的基本方式
  • 878
分享到

Flutter框架中,组件间传值的基本方式

flutter 2023-09-14 13:09:00 878人浏览 安东尼
摘要

构造函数传值 在创建widget时,可以通过构造函数将参数传递给子widget。例如: class ChildWidget extends StatelessWidget { final Strin

构造函数传值

在创建widget时,可以通过构造函数将参数传递给子widget。例如:

class ChildWidget extends StatelessWidget {  final String title;  const ChildWidget({Key? key, required this.title}) : super(key: key);  @override  Widget build(BuildContext context) {    return Text(title);  }}class ParentWidget extends StatelessWidget {  @override  Widget build(BuildContext context) {    return ChildWidget(title: 'Hello World');  }}

回调函数传值

父widget可以在创建子widget时,传递一个回调函数,当子widget需要把值传给父widget时,就调用这个回调函数。例如:

class ChildWidget extends StatelessWidget {  final ValueChanged<String> onChanged;  const ChildWidget({Key? key, required this.onChanged}) : super(key: key);  @override  Widget build(BuildContext context) {    return TextField(      onChanged: (value) {        onChanged(value); // 调用回调函数      },    );  }}class ParentWidget extends StatefulWidget {  @override  _ParentWidgetState createState() => _ParentWidgetState();}class _ParentWidgetState extends State<ParentWidget> {  String _text = '';  @override  Widget build(BuildContext context) {    return Column(      children: [        ChildWidget(          onChanged: (value) {            setState(() {              _text = value; // 更新状态            });          },        ),        Text(_text),      ],    );  }}

InheritedWidget传值

InheritedWidget是Flutter框架提供的一种特殊的widget,它可以沿着widget树向下传递数据。当需要在widget树中共享数据时,可以使用InheritedWidget。例如:

class MyInheritedWidget extends InheritedWidget {  final String data;  MyInheritedWidget({Key? key, required this.data, required Widget child})      : super(key: key, child: child);  static MyInheritedWidget of(BuildContext context) {    return context.dependOnInheritedWidgetOfExactType<MyInheritedWidget>()!;  }  @override  bool updateShouldNotify(MyInheritedWidget oldWidget) {    return data != oldWidget.data;  }}class ChildWidget extends StatelessWidget {  @override  Widget build(BuildContext context) {    final data = MyInheritedWidget.of(context).data;    return Text(data);  }}class ParentWidget extends StatelessWidget {  @override  Widget build(BuildContext context) {    return MyInheritedWidget(      data: 'Hello World',      child: ChildWidget(),    );  }}

以上是Flutter中实现组件间传值的几种方式,选择合适的方式应根据具体场景来决定。能帮到你的话,就给播主点个关注吧!

来源地址:https://blog.csdn.net/weixin_43534452/article/details/131395973

--结束END--

本文标题: Flutter框架中,组件间传值的基本方式

本文链接: https://lsjlt.com/news/407264.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Flutter框架中,组件间传值的基本方式
    构造函数传值 在创建widget时,可以通过构造函数将参数传递给子widget。例如: class ChildWidget extends StatelessWidget { final Strin...
    99+
    2023-09-14
    flutter
  • vue组件传值的方式
    vue组件传值的方式:1、父传子;2、子传父;3、兄弟传值;4、问号传值,冒号传值和父子组件传值;5、使用“$ref”传值;6、使用“inject”给当前实例注入父组件的数据;7、祖传孙;8、孙传祖;9、$parent;10、session...
    99+
    2023-07-18
  • react hooks组件间的传值方式是什么
    这篇文章给大家介绍react hooks组件间的传值方式是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。父传子通过props传值,使用useState来控制state的状态值父组件 Father.tsx里:子组件 ...
    99+
    2023-06-25
  • vue3 父子组件间相互传值方式
    目录vue3父子组件相互传值父向子传值子组件向父组件传值vue3父子组件传值的注意事项解决办法:两种vue3父子组件相互传值 父向子传值 父 <pie-chart :pieDa...
    99+
    2024-04-02
  • 详解vue组件之间相互传值的方式
    目录概述一、父组件向子组件传值二、子组件向父组件传值1.子组件绑定一个事件,通过 this.$emit() 来触发2.通过 callback 函数3. 通过 $parent / $c...
    99+
    2024-04-02
  • vue组件间的通信,子组件向父组件传值的方式汇总
    目录一、子组件通过this.$emit()的方式将值传递给父组件二、通过vuex来传递组件间的数据三、通过中央总线来传递组件间的数据四、通过修改父组件传过来的对象属性五、父组件使用子...
    99+
    2023-03-20
    vue组件通信 vue子组件 vue父组件传值
  • vue3中的组件间的传值(props)
    目录vue3组件间的传值(props)父组件向子组件传值子组件向父组件传值(常规)子组件向父组件传值(v-model)vue3组件之间传值和事件处理下面介绍子组件传值总结vue3组件...
    99+
    2023-05-17
    vue3 props vue3组件间传值 组件传值vue3
  • vue组件之间相互传值的方式有哪些
    这篇文章给大家分享的是有关vue组件之间相互传值的方式有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。概述我们都知道 Vue 作为一个轻量级的前端框架,其核心就是组件化开发。Vue 就是由一个一个的组件构成的...
    99+
    2023-06-15
  • 详解react hooks组件间的传值方式(使用ts)
    目录父传子子传父跨级组件(父传后代)父传子 通过props传值,使用useState来控制state的状态值 父组件 Father.tsx里: 子组件 Child.tsx里: ...
    99+
    2024-04-02
  • vue组件间的通信,子组件向父组件传值的方式是什么
    今天小编给大家分享一下vue组件间的通信,子组件向父组件传值的方式是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、子...
    99+
    2023-07-05
  • vue2.0中组件传值的几种方式总结
    目录搭建好测试环境1.方法一父传子子传父2.方法二父传子子传父奇怪的传值3.方法三4.兄弟组件之间传值总结搭建好测试环境 app.vue <template> &l...
    99+
    2022-12-08
    vue2.0组件传值 vue组件传值 vue2.0组件传值方式
  • vue组件之间进行传值的方法
    目录前言1.父组件向子组件进行传值2.子组件向父组件进行传值3.非父子组件之间的传值 总结前言 目前在做vue的项目,用到了子组件依赖其父组件的数据,进行子组件的相关请求和...
    99+
    2024-04-02
  • vue组件传值的方式有哪些
    这篇文章主要介绍vue组件传值的方式有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 组件传值方式:1、通过路由进行传值;2、通过在父组件中让子组件标...
    99+
    2024-04-02
  • vue中动态组件使用及传值方式
    目录vue动态组件使用及传值vue组件的定义使用及简单传值组件传值:父组件–》子组件子组件通过事件向父组件传值父组件向孙子组件传值,即多层组件传值vue动态组件使用及传值...
    99+
    2024-04-02
  • vue组件传值的11种方式总结
    目录1、父组件传给子组件2、子组件传给父组件3、兄弟组件间传值4、路由间传值 i.使用问号传值5、使用$ref传值6、使用依赖注入传给后代子孙曾孙7、祖传孙 $attrs8、孙传祖9...
    99+
    2023-01-13
    vue组件传值 vue组件 组件传值
  • vue中兄弟组件传值的两种方式小结
    目录一. bus总线传值的使用二. 使用常规的传值:(子传父,父再传子)总结本demo主要是为了演示vue项目中兄弟组件之间的传值,这里我演示了两种方式:a. bus总线传值;b. ...
    99+
    2022-11-13
    vue兄弟组件传值 vue兄弟组件 vue组件传值
  • vue组件间传值的方法你知道几种
    目录一丶父子组件传值二丶子父组件传值三丶兄弟组件传值四丶$parent /$children与ref总结一丶父子组件传值 先在父组件中给子组件的自定义属性绑定一个 父组件的变量 &l...
    99+
    2024-04-02
  • Vue子组件接收父组件传值的方式有哪些
    这篇文章给大家分享的是有关Vue子组件接收父组件传值的方式有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。父组件代码&darr;<template>   &n...
    99+
    2023-06-29
  • vue中组件间相互通信传值的方法有哪些
    这篇文章主要讲解了“vue中组件间相互通信传值的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue中组件间相互通信传值的方法有哪些”吧!vue中组件之间相互通讯传值的方式我们在使...
    99+
    2023-06-29
  • 关于Vue组件间的常用传参方式
    目录组件间常用传参方式1. props、emit(最常用的父子通讯方式)2. 事件总线EventBus(常用任意两个组件之间的通讯)3.Vuex状态管理vue组件传参记录几个不太常用...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作