dart - flutter父组件如何调用子组件?

标签 dart flutter

父组件如何触发子组件的方法?如何触发son in fathor的点击方法?如下图:

enter image description here

enter image description here

最佳答案

如前所述,您需要使用回调。这意味着您将一个函数传递给您的 child ,它会在需要时调用。你将从内而上而不是自上而下地工作。

您将该函数存储为一个成员变量,当您的 child 被点击时,您将调用该函数。该函数将在您的父级中调用,您可以像调用普通函数一样将任何您想要的数据传回给父级。

这里有一些你可以用来进行调整的伪代码

class son extends StatelessWidget {
  Function onClicked;

  son({this.onClicked});

  Widget build(...) {
    return GestureDetector(
      child: Container(...),
      onTap: onClicked
    )
  }
}

class father extends StatelessWidget {
  Widget build(...) {
    return Container(
      child:son(onClicked: _clicked)
    )
  }

  void _clicked() {
    print('clicked');
  }
}

此外,一定要将您的类(class)名称更改为以大写字母开头。

关于dart - flutter父组件如何调用子组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55739947/

相关文章:

flutter - 如何在 Dart 中将 RxInt 转换为 Int || flutter ?

flutter - 变量未更新.map()中的值

flutter - 如何使用 Flutter 从 FaceBook 导出数据到 CSV 文件

flutter - 如何查看应用发布版本的 Flutter 调试控制台输出?

flutter - 强制子类实现抽象重写方法

flutter - 在 Flutter 中将数据异步加载到 ChangeNotifier 模型中

animation - 如何在 Controller 反向上更改 Flutter 中的 CurvedAnimation?

dart - 像 whatsapp Flutter 一样编辑列表

android - 如何在 flutter 中设置 Transform.translate() 动画的持续时间?

flutter - 可空表达式不能用作 for-in 循环中的迭代器。在将其用作迭代器之前尝试检查该值是否不是 'null'