gpt4 book ai didi

swiftui - View 中的嵌套ForEach(和列表)会产生意外结果

转载 作者:行者123 更新时间:2023-12-01 09:42:32 24 4
gpt4 key购买 nike

在SwiftUI View 中的另一个ForEach中执行ForEach会产生意外的结果-几乎就像它们踩着对方的柜台一样。目前尚不清楚发生了什么。我需要显示多分支数组,并尝试了多种变体,但仍然遇到相同的问题

我有几个项目已经提出来。尝试使用范围(0 ..

这只是一个Beta版问题,还是我缺少什么?我已经包含了一个演示该问题的示例项目。

使用XCode 11 Beta(11M392r)

谢谢!

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进行评论,则可以显示奶酪

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

最佳答案

在此Beta周期中,由于@ViewBuilder中新的SwiftUI语法带来的许多错误,“Ambiguous reference…”消息是一条红色鲱鱼。您的问题是ForEach闭包需要一个 View ,而不是 View 构建器。

您可以通过简单地将ForEach闭包的主体包装在Group中来使 View 工作,如下所示:

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)

}
}
}
}
}
}

还有:

enter image description here

关于swiftui - View 中的嵌套ForEach(和列表)会产生意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57861330/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com