在父窗口小部件中访问子窗口小部件的变量(Flutter with Dart)

2023-12-10

我有一个按钮,按下该按钮会打开模式底部表单。该工作表有一个表单小部件,需要几个文本字段和一个图像(来自图库/相机)。对于此图像输入,我创建了另一个有状态小部件,该小部件在上一个视图(模式表)中调用。 现在,通过用户接收到的图像文件被设置在子有状态小部件的变量中。我的问题是,如何在父窗口小部件内访问此变量(子窗口小部件中的文件对象)?

请参考以下代码:

底页:(请参阅调用子窗口小部件的注释。)

        context: _scaffoldKey.currentContext,
        builder: (BuildContext context) {
          return Scaffold(
              backgroundColor: Colors.white,
              appBar: AppBar(
                elevation: 0.0,
                automaticallyImplyLeading: false,
                backgroundColor: Colors.white,
                title: Center(
                  child: _formTitleWidget(),
                ),
              ),
              body: Container(
              height: MediaQuery.of(context).size.height* 0.5,
              margin: EdgeInsets.all(MediaQuery
                  .of(context)
                  .copyWith()
                  .size
                  .width * 0.05),
              child: Form(
                key: _addChildFormKey,
                child: SingleChildScrollView(
                  child: Container(
                    height: MediaQuery.of(context).size.height* 0.4,
                    child: Row(
                      crossAxisAlignment: CrossAxisAlignment.start,
                      children: <Widget>[
                        // Calling the child widget here - where 'image' variable is set
                        AddChildView(),
                        Container(
                          height: MediaQuery.of(context).size.height* 0.4,
                          width:  MediaQuery.of(context).size.width* 0.65,
                          child: Column(
                            children: [
                              _childNameInput(),
                              _childBirthDateInput(),
                              _childHeightInput(),
                              _childWeightInput(),
                              _addChildWithInfo()
                            ],
                          ),
                        )
                      ],
                    ),
                  ),
                ),
              ),
            )
          );
        }```

如果您不使用状态管理解决方案,则必须使用回调。

在父级中创建一个变量。 创建一个接收值并将其分配给您刚刚创建的变量的方法。

创建一个最终的 Function 并将其添加到子级的构造函数中。 现在,当您在父级中实例化子级小部件时,它将接受您刚刚创建的方法。

在适当的时候在您的孩子中运行该函数。

class ParentWidget extends StatelessWidget {
  Image image;

  callBack(Image imageFromChild) {
    this.image = imageFromChild;
  }

  @override
  Widget build(BuildContext context) {
    return Container();
  }
}

class ChildWidget extends StatelessWidget {
  final Function callBack;

  const ChildWidget({Key key, this.callBack}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Container(
      child: FlatButton(
        child: Text('Press'),
        onPressed: () {
          var image = uploadImageMethod();
          callBack(image);
        },
      ),
    );
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在父窗口小部件中访问子窗口小部件的变量(Flutter with Dart) 的相关文章

  • 带有 Firebase 通知的 Flutter Web - subscribeToTopic

    我想在我的 flutter web 应用程序中接收 firebase 通知 我知道 firebase messaging 包不可用于网络 但我已经管理配置我的应用程序以获取令牌 在网络应用程序位于后台时接收并显示消息 并在应用程序位于前台时
  • 使用 Visual Studio Code 在 Flutter 上运行 Gradle 时出错

    我正在使用 Windows 10 Visual Studio Code 我尝试在编写代码后运行我的代码 这就是它之后向我展示的内容 在调试模式下在 TECNO Camon CX 上启动 lib main dart 运行 Gradle 时出错
  • Dart 是否支持 PHP,例如 $_SESSION(会话)?

    服务器端 Dart 是否支持像 PHP 中那样的会话
  • Android Studio Flutter 项目错误:内存不足

    我在 Android Studio 上运行任何 flutter 项目 都会抛出内存不足错误 控制台中显示的消息如下所示 e b build slave windows engine build src third party dart ru
  • Flutter - 名称为 [DEFAULT] 的 FirebaseApp 不存在

    我正在使用 firebase 身份验证系统和 Firestore 开发一个 flutter 应用程序 我工作了3个月 之前没有遇到过这个错误 现在我在 Play 商店上发布了我的应用程序 并且我发现使用模拟器的调试版本也出现此错误 我认为已
  • 如何在颤动中从图像选择器中裁剪图像?

    我想允许用户裁剪他从图像选择器中选择的图像并保存它 类似于在 Whatsapp 上上传个人资料图片 我怎样才能在颤振中做到这一点 示例图片 您可以使用这2个flutter库来实现这一点 图像选择器 图像裁剪器 图像选择器使用iOS和Andr
  • VB.NET 中的模块变量何时实例化?

    我想知道在程序的生命周期中 模块中的变量将被初始化 如下例所示 Module Helper Friend m Settings As New UserSettings Sub Foo End Sub Sub Bar End Sub End
  • 未安装 Visual Studio;这对于 Windows 开发是必要的

    My 颤振医生 https docs flutter dev get started install windows run flutter doctor是说 Visual Studio develop for Windows X Visu
  • Dart - 何时在集合上使用 Collection-For-In 与 .Map()

    collection for in 操作和 map 方法都可以返回对先前集合中的元素的一些操作 是否有任何理由更喜欢使用其中一种而不是另一种 var myList 1 2 3 var alteredList1 for int i in my
  • 使用不包含 Bloc 的上下文调用 BlocProvider.of() - 即使它包含

    首先 我确实知道 BLoC 是如何运作的 它背后的想法 我知道两者之间的区别BlocProvider and BlocProvider value 构造函数 为简单起见 我的应用程序有 3 个页面 其中有一个小部件树 如下所示 App gt
  • Flutter Scaffold Appbar 不显示后退按钮

    我的课程没有在 AppBar 中显示后退按钮 已经尝试将 this automaticallyImplyLeading true import package carros pages carro carro dart import pac
  • Flutter无法从url加载图像

    图片资源服务捕获异常 解析图像编解码器时抛出以下 ImageCodecException 加载网络图像失败 图片网址 https cdn sportmonks com images soccer leagues 5 png https cd
  • 将 SQL Server 与 Dart 结合使用

    我还没有找到很好的答案 所以我想尝试一下得到答案 将 Microsoft SQL Server 与 Dart 结合使用的最佳方式是什么 我需要它能够从基本上任何操作系统 网络和移动设备上使用它 我觉得最好的方法可能是 GraphQL 但我对
  • 从后台恢复后,Flutter GoogleMap 为空白

    我遇到以下问题 我的 Flutter 应用程序使用 GoogleMap 地图最初加载得很好 但是 如果我将应用程序置于后台并稍后恢复 地图将保持空白 Google 徽标仍然显示 就像未指定 API 密钥时发生的情况一样 我的多边形叠加层也不
  • 检测函数是否是浏览器原生的

    我试图迭代网站中定义的所有全局变量 但这样做时我也获得了本机浏览器功能 var numf 0 var nump 0 var numo 0 for var p in this if typeof this p function numf 1
  • 在 Flutter 中从 Play 商店获取产品时应用内购买崩溃

    我在安装和实施后遇到问题应用内购买插件 https pub dev packages in app purchaseFlutter 团队提供 到目前为止我做了什么 在 Play 商店中添加了 2 个可见且活跃的产品 提交了用于 alpha
  • 不使用 BuildContext 预加载图像

    有没有办法在函数中加载 Flutter 中的图像而无需访问 BuildContext Flutter 可以预加载图像precacheImage 需要BuildContext 使用起来不方便 我想加载图像initState StatefulW
  • 如何确定我们是否正在 Dart (Flutter) 中运行单元测试

    在 Flutter Dart 中从单元测试调用函数时 如何确定我正在运行单元测试还是实际应用程序 如果在单元测试中 我想传递不同的数据 您可以使用以下内容来检查您是否正在运行测试 Platform environment containsK
  • 如何在 Flutter 上的 sqlite 中存储对象数据列表?

    如何在 Flutter 上的 SQLite 中存储对象数据列表 API 附带的 Json 数据 images id 10 name img1 id 11 name img2 在使用 SQLite 存储对象之前 您需要序列化对象列表 首先 你
  • 向上滚动时固定项目

    所以我有以下屏幕 我正在寻找一种方法 使得当用户向上滚动时 包含进度条和这 4 个数据字段 ItemHeader 的小部件将向上滚动 但搜索容器 SearchTextField 将被固定 到顶部 当然 当用户向下滚动时 它应该重新出现 我找

随机推荐

  • awk 打印匹配的列如果存在则打印未找到

    我的文本文件如下所示 date 2017 10 10 ip 192 168 1 1 22 inbound 100 outbound 100 date 2017 10 10 ip 192 168 1 1 22 inbound 100 date
  • LINQ to SQL IsDiscriminator 列不能继承吗?

    我正在设计我的数据库和 LINQ To SQL ASP NET Web 应用程序 想象一下我有两种类型的页面 普通页面和根页面 有些页面是根 有些页面不是 我有一个 Page 数据库表和一个 RootPage 数据库表 Page PK Pa
  • 未检测到 OWIN 启动类

    我试图在现有应用程序中实现 OWIN WS Federation 它是一个使用 asp net VB 编写的 Web 应用程序 我已经添加了 Nugetpackages 中的所有引用添加的参考文献列表 然后我将启动类添加到 2 个文件中作为
  • 如何指定Ubuntu中CMake的安装位置?

    我已经下载了cmake 3 11 3 Linux x86 64 sh文件 然后我执行它并创建了一个文件夹 其中包含bin文件有cmake在上面 我尝试编辑 etc environment像这样 PATH usr local sbin usr
  • Java 限制上传速度?

    我想以编程方式限制 Java 中的上传或下载操作 我假设我需要做的就是检查上传速度并插入Thread sleep 因此像这样 while file hasMoreLines String line file readLine for int
  • Selenium Webdriver:如何获取当前页面中的所有cookie

    尝试使用 Chrome 驱动程序和 java 获取当前页面中的所有 cookie 请帮助我在关闭浏览器并尝试使用旧 cookie 打开新浏览器后检索页面中的所有 cookie 使用 WebDriver API 网址为 http seleni
  • c# xml反序列化为xsi中带有冒号和连字符的对象:类型值

    当我尝试使用以下方法将 XML 文件反序列化为对象时遇到问题XmlSerializer class 我的 XML 文件如下所示
  • 安装 Bower 时出错(ERR!tar.unpack 解压错误)

    我在尝试安装 Bower 时收到此错误 这是一个错误还是我做错了 如果需要的话 我还有 4707 行 npm debug log 文件 Thanks 这是尝试在本地安装 Bower 时来自终端的转储 但我在全局尝试时遇到相同的错误 npm
  • 如何使用 Graph API 让用户订阅 facebook 中的事件?

    我希望用户在添加到此网站活动注册时也能在 Facebook 上订阅该活动 系统已经请求 create event 额外权限 我没有找到如何在用户通过图形 API 登录后订阅特定事件 我怎样才能做到这一点 Thanks Joe 它记录在eve
  • 上传视频时出现TokenMismatchException?

    上传图像时 laravel 会顺利完成所有事情 没有戏剧 一旦我上传视频文件 不 弹出 verifyCsrfToken php 第 46 行中的 TokenMismatchException 我有一个验证器 fileVali Validat
  • Java中int[]数组转换为short[]数组

    我有一个int我为其分配了 100 个元素空间的数组 还有另一个数组inShort 我怎样才能转换inInt to inShort 是否需要分配新的内存inShort 或者有一种方法我可以通过它投射到inInt int inInt new
  • 在 Python 中使用 range() 时出现内存错误 (2.7.4)

    好吧 我在 StackOverflow 上浏览了很多有关 MemoryError 的问题 但找不到满意的答案 我在配备 2GB RAM 的笔记本电脑上运行 Ubuntu 13 04 Gnome 64 位 当我编写以下 Python 代码时
  • 使用 Python 将无聊的事情自动化。逗号代码[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 In 使用 Python 自动化处理无聊的事情 有一个练习项目叫Comma Code 假设您有一个如下所示的列表值 spam apples bananas tofu cats 编
  • 为什么 if constexpr 不能使这个核心常量表达式错误消失?

    在参照这个问题 用于初始化的核心常量表达式constexpr多变的y格式不正确 这么多是给定的 但如果我尝试转动if进入一个if constexpr template
  • 连接到 informix 数据库 Windows 窗体应用程序

    我正在尝试弄清楚如何连接到 IBM informix 数据库 我一直在做一些研究 发现了 5 年前的一些线索 但这些例子不起作用 我已经安装了 IBM 的 informix 的最新 SDK 我已将 IBM Data Informix dll
  • jupyter笔记本中无法导入Ipython显示中的Geojson

    我想知道为什么 Iphython display Geojson 中的复制粘贴示例不会导入到 Jupyter 笔记本中 from IPython display import GeoJSON GeoJSON data type Featur
  • JTable 不更新数据

    由于某种原因 调用此方法时 此 JTable 没有任何变化 此方法在用户提交 SQL 查询后更新 JTable 吉文斯 dataVector 和 columnNamesVector 已验证是否已正确填充 JTable 是私有类变量 priv
  • 非连续大写单词的正则表达式

    这是给你的一个正则表达式向导 这是在 Notepad 中使用的 即直接输入到搜索和替换对话框中 我需要匹配并突出显示嵌套在字符串中的两个或多个字符的大写字母的孤立单词 但大写单词不能是连续的 它们必须始终被小写单词 或首字母大写的小写名词
  • 在 NUnit 测试期间的拆卸事件中,如何获取应用于刚刚测试的方法的属性?

    我有一个正在运行的测试方法 当该方法生成异常时 我想知道测试的名称是什么以及异常内容 在测试的拆解中 我想访问此信息 我如何从 TearDown 归因方法 您可以在测试拆卸方法中访问文本上下文对象 TearDown public void
  • 在父窗口小部件中访问子窗口小部件的变量(Flutter with Dart)

    我有一个按钮 按下该按钮会打开模式底部表单 该工作表有一个表单小部件 需要几个文本字段和一个图像 来自图库 相机 对于此图像输入 我创建了另一个有状态小部件 该小部件在上一个视图 模式表 中调用 现在 通过用户接收到的图像文件被设置在子有状