SwiftUI - 按钮 - 如何将函数(带参数)请求从子级传递给父级

2024-02-04

我已经知道如何从子函数调用父函数,但是如果我的父函数有参数我应该做什么?我想不通...

不带参数的工作代码:

struct ChildView: View {
    var function: () -> Void

    var body: some View {
        Button(action: {
            self.function()
        }, label: {
            Text("Button")
        })
    }
}

struct ContentView: View {
    var body: some View {
        ChildView(function: { self.setViewBackToNil() })
    }

    func setViewBackToNil() {
        print("I am the parent")
    }
}

现在我想向 setViewBackToNil(myString Parameter: String) 添加一个 String 参数


好的,我设法解决了它。

您可以在父级中使用 @State 变量,并将其传递给您的子级。然后,在子视图中更改它后,调用从父视图传递的函数(不带参数),并在父视图中获取函数内的 @State 。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SwiftUI - 按钮 - 如何将函数(带参数)请求从子级传递给父级 的相关文章

随机推荐

  • 委托不在单例中工作[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 为了在多个
  • Databricks - 无法从 DataFrame 写入 Delta 位置

    我想更改 Databricks Delta 表的列名称 所以我做了以下事情 Read old table data val old data DF spark read format delta load dbfs mnt main sal
  • 如何重建开发 Pod 变更?

    我有一个开发容器 我使用它在本地连接到我的应用程序 path gt Projects Swift pod 当我在该开发容器中的应用程序代码中进行更改时 构建后不会包含此更改 这就像我正在构建缓存代码 而不是更改我的代码 为了将代码更改包含到
  • 计算网络两个输出之间的 cosine_proximity 损失

    我正在使用 Keras 2 0 2 功能 API Tensorflow 1 0 1 来实现一个接受多个输入并产生两个输出的网络a and b 我需要使用 cosine proximity 损失来训练网络 这样b是标签a 我该怎么做呢 在这里
  • 在 makefile 中指定路径(Windows 上的 GNU make)

    我正在使用 GNU make 来构建一个使用 Microsoft Visual C 的项目 并且我希望能够从任何 CMD 窗口运行它 而不必打开预配置路径 以及各种其他环境变量 的预配置窗口通过批处理文件 理想情况下 我想在 makefil
  • 无法让 pyspark 作业在 hadoop 集群的所有节点上运行

    Summary 我无法运行我的 python spark 作业all我的 hadoop 集群的节点 我已经安装了 hadoop spark 1 5 2 bin hadoop2 6 的 Spark 启动 java Spark 作业时 负载得到
  • 如何检查 Asp.net Core MVC(又名 Asp.Net 5 RC1)中的响应 cookie?

    我正在将 Web 表单应用程序转换为 asp net core mvc 在我的 Web 表单应用程序中 有时在我设置一些响应 cookie 后 其他代码需要查看它们是否已设置 如果是 则访问 cookie 的属性 即值 过期 安全 http
  • 在 Powershell 中删除重复的 XML 节点组

    我有一个 XML 文件 由于重新运行脚本和文件夹结构 该文件可能包含重复的包元素 请参阅示例 XML 中的最后两个包 现在我需要一个 Powershell 函数来删除所有重复的包 在这种情况下 重复项是由制造商 名称 版本 文件名和执行版本
  • 如何从 CPAN 安装“Thread::Pool”?

    我在用着cpanm安装 Perl 模块 但我无法安装Thread Pool因为某些原因 sudo cpanm Thread Pool 失败并且日志文件显示 cpanm App cpanminus 1 0012 on perl 5 01000
  • Bottle.py 错误路由

    Bottle py 附带了一个导入来处理抛出 HTTPError 并路由到函数 首先 文档声称我可以 几个例子也是如此 from bottle import error error 500 def custom500 error retur
  • 您能识别出这个带有复选框的多选下拉列表吗?

    I m looking for this control which is definitely not stock It s on a website that I won t link so people don t think I m
  • 如何使用 parse.com 服务器 iOS 保存对象数组?

    我正在使用 parse com 服务器发送和检索我的 iOS 应用程序数据 我想保存歌曲列表 每首歌曲都有以下属性 标题 艺术家 专辑 我的代码片段在这里 IBAction saveSongsData id sender PFObject
  • 如何从 RAM 中完全解析压缩文件?

    背景 我需要解析一些各种类型的 zip 文件 出于某种目的获取一些内部文件内容 包括获取它们的名称 有些文件无法通过文件路径访问 因为 Android 有 Uri 来访问它们 并且有时 zip 文件位于另一个 zip 文件内 随着使用 SA
  • 我怎样才能让阴谋集团安装酸性状态?

    我是 Haskell 的新手 想尝试酸性状态库 但在尝试安装它时得到以下输出 gt cabal install acid state Resolving dependencies Configuring acid state 0 7 5 B
  • SSIS - 创建日期时间的脚本问题

    我正在使用 SSIS 将数据从 CSV 文件上传到数据库中的表 我尝试获取 2 个字符串 一个用于日期 另一个用于时间 并将它们连接起来 如下所示 string datsDateTime String Concat Row DATE Row
  • 使用 CSS 制作窄字符

    如何使用 CSS 减少类似 Arial 字体的字符宽度 您无法减少字符宽度 但可以减少字母间距 span letter spacing 0px
  • 与图片框一起移动按钮 vb/c#

    我正在开发映射的 DVR cctv UI 我自己做的 所以没有使用google的API 我只是在需要的地方切掉了地图的大部分 所以 如果我确实有一个非常大的地图 那么它不适合我的电脑分辨率 我还没有找到在图片框中移动图片的代码 但我所做的是
  • 如何更新特定的 XElement?

    更新 XElement 的最佳方法是什么 更新元素 Pen 的 itemNumber 的值 在此 XML 中
  • 使用gradle中的参数运行jar

    我想在我的 gradle 脚本中运行一个参数位于 C Users nwuser FitNesse fitnesse standalone jar 的 jar 文件 我知道如何在没有参数的情况下做到这一点 apply plugin java
  • SwiftUI - 按钮 - 如何将函数(带参数)请求从子级传递给父级

    我已经知道如何从子函数调用父函数 但是如果我的父函数有参数我应该做什么 我想不通 不带参数的工作代码 struct ChildView View var function gt Void var body some View Button