视图中嵌套的 ForEach(和列表)会产生意想不到的结果

2024-04-09

在 SwiftUI 视图中的另一个 ForEach 中执行一个 ForEach 会产生意想不到的结果 - 几乎就像它们踩在彼此的计数器上一样。不清楚发生了什么。我需要显示多分支数组并尝试了多种变体,但仍然遇到同样的问题

我有几个项目就出现过这种情况。尝试使用范围(0..

这只是测试版问题还是我遗漏了什么?我提供了一个演示该问题的示例项目。

使用 XCode 11 Beta (11M392r)

Thanks!

import SwiftUI

struct ContentView: View {

    let topTier:[String] = ["Apple", "Banana", "Cherry"]
    let nextTier:[String] = ["Abalone", "Brie", "Cheddar"]


    var body: some View {
        List {

            ForEach (topTier.indices, id: \.self) { a in

                Text(self.topTier[a])

                ForEach (self.nextTier.indices, id: \.self) { b in

                    Text(self.nextTier[b]).padding(.leading, 20)

                }

            }
        }
    }
}

在第一个 ForEach 上抛出“对成员‘索引’的不明确引用”。

如果内部 ForEach 被注释,它可以显示水果 外部的 ForEach 被评论为显示奶酪

我希望它显示: 苹果 鲍鱼 布里干酪 切达干酪 香蕉 鲍鱼 布里干酪 切达干酪 樱桃 鲍鱼 布里干酪 切达干酪


与新版本中出现的许多错误一样@ViewBuilder语法与SwiftUI在此测试周期中,“不明确的参考......”消息是一个转移注意力的信息。你的问题是ForEach闭包需要单个视图,而不是视图构建器。

您可以通过简单地包裹主体来让您的视图工作ForEach封闭在一个Group,像这样:

import SwiftUI

struct ContentView: View {

    let topTier:[String] = ["Apple", "Banana", "Cherry"]
    let nextTier:[String] = ["Abalone", "Brie", "Cheddar"]


    var body: some View {
        List {

            ForEach (topTier.indices, id: \.self) { a in
                Group {
                    Text(self.topTier[a])

                    ForEach (self.nextTier.indices, id: \.self) { b in

                        Text(self.nextTier[b]).padding(.leading, 20)

                    }
                }
            }
        }
    }
}

瞧:

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

视图中嵌套的 ForEach(和列表)会产生意想不到的结果 的相关文章

随机推荐

  • 将 Java 集合转换为 Scala 集合

    与堆栈溢出问题相关Scala 相当于 new HashSet Collection https stackoverflow com questions 674545 如何转换 Java 集合 java util List比如说 到 Scal
  • XSLT 身份转换

    我正在测试 XSLT 身份转换 因此我随机选择了 www w3schools com 上的以下示例 因为它允许我在线尝试 我将右侧窗格中的 XSLT 更改为身份转换
  • 毕加索库,Android:使用错误侦听器

    我正在使用毕加索库来加载图像 但遇到了一个问题 当图像加载失败时 我想隐藏视图而不是加载默认图像 我从源代码中注意到 添加侦听器的唯一方法似乎是来自构建器 但是当图像加载失败时 永远不会调用错误方法 有人对此有经验吗 iv ImageVie
  • Android imageview 从缩放图像中获取像素颜色

    我的家庭自动化应用程序有一个功能 人们可以将图像上传到手机 其中包含平面图和仪表板 他们可以使用它们来控制家庭自动化软件 我让他们上传两张图像 一张可见图像 其中包含他们想要显示的图形 第二张彩色图 其纯色对应于他们想要从可见图像中定位的区
  • 在opengl中,如何获得像素和gl.gltranslatef(floatx,y,z)之间的关系?

    我正在尝试在 Android 上学习 opengl 的东西 在 gl gltranslatef x y z 调用中 我将纹理沿 ve x 方向移动一些单位 但我无法找到 1 个 x 单位所属的像素数 这是我正在做的事情 我调用 gl glv
  • Simba Athena ODBC:无法使用 SQLGetPrivateProfileString 函数

    这很奇怪 我想设置从 RStudio 到我在 AWS Athena 中的实例的连接 我在用unixodbc作为驱动程序管理器 并通过使用测试连接成功isql v Simba Athena 但是 当我在 RStudio 中测试连接时 con
  • deviceready 事件未在 Angular 混合应用程序中触发

    我正在构建一个全平台 Angular 6 应用程序 该应用程序将用 Cordova 8 1 2 包装 不幸的是我无法制作设备就绪触发事件 我有两个独立的项目 一个用于 Angular 一个用于 Cordova 我可以使用以下命令构建 Ang
  • MySQL 通过在非索引列上执行删除语句时锁定整个表来尝试防止什么现象

    使用可重复读的 MySQL 隔离级别 给定表test具有非索引列quantity id quantity 1 10 2 20 3 30 Tx1执行第一个 注意它还没有提交 这意味着所有获取的锁还没有释放 Tx1 START TRANSACT
  • 如何使用PHP获取用户的屏幕分辨率[重复]

    这个问题在这里已经有答案了 可能的重复 使用PHP获取屏幕分辨率 https stackoverflow com questions 1504459 getting the screen resolution using php 这个问题是
  • 通过 JS 调用 JSF 方法 [重复]

    这个问题在这里已经有答案了 我在 JS 代码中有一个 for 循环 我想调用一个方法 该方法的参数写在 JAVA 托管 bean 中 该方法计算一个值并返回一个将在 JS 中使用的新值 注意 我在 xhtml 页面中使用 primeface
  • QML ListView 如何估计其 contentItem 的高度/宽度

    我想知道如何ListView估计它的高度 宽度contentItem 尽管代表是Component您无法询问 并且不同委托实例的大小可能有所不同 它不使用当前实例的平均大小 否则在实施例1 如果按下一个元素 则估计大小将为3055 5如果计
  • FreeBSD 中的多行删除

    我们怎样才能在 FreeBSD 中实现这一点呢 FreeBSD 中包含模式的多行删除块 sed START TAG a N END TAG ba ID 222 d data txt See sed 多行删除与模式 https stackov
  • 汉明立方体顶点上的查询点

    我有 N 个点 仅位于 D 维立方体的顶点上 其中 D 约为 3 A vertex may not contain any point So every point has coordinates in 0 1 D I am only in
  • React-Bootstrap 切换按钮无法隐藏单选按钮圆圈

    在我的表单中 我想要切换按钮 以下代码是从切换按钮上的 React bootstrap 文档复制的 但是 单选按钮圆圈在应该隐藏的时候却显示了 我该如何隐藏它们 import ButtonGroup from react bootstrap
  • Kubernetes RBAC 动词:不带列表获取,反之亦然?没有列表就看?

    虽然有很多关于 Kubernetes RBAC 的文档和示例 以及不同资源的可用动词 但我找不到任何关于某些动词是否始终组合使用或是否有单独使用它们的用例的规则 我特别想知道动词 get list 和 watch 组合它们 尤其是不组合它们
  • 在 SQL 中添加额外的 Where 子句会严重影响性能

    我有一个运行多个视图和表的 SQL 查询 查询运行良好 但当我在 WHERE 子句中添加另一个条件时 它开始对性能产生巨大影响 查询的结构类似于 SELECT a FROM vw myView a LEFT OUTER JOIN tbl1
  • 从 API 返回字符串文字

    我正在编写一个用户 API 这样返回 const char 值是否正确 const char returnErrorString int errorCode switch errorCode return This error code m
  • 为什么不能使用整数作为 C# 中 while 循环的条件? [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 使用如下所示的 while 循环时出现错误 我不明白为什么 int count 5 while count here s
  • 如何在 Mysql 5.7 中更新 JSON 数组中的特定对象

    如何根据对象中的唯一值更新数组中的对象 假设这是我的 json 对象 存储在名为对象的表和名为内容的列中 table objects id 7383 content data id 111 active 1 id 222 active 1
  • 视图中嵌套的 ForEach(和列表)会产生意想不到的结果

    在 SwiftUI 视图中的另一个 ForEach 中执行一个 ForEach 会产生意想不到的结果 几乎就像它们踩在彼此的计数器上一样 不清楚发生了什么 我需要显示多分支数组并尝试了多种变体 但仍然遇到同样的问题 我有几个项目就出现过这种