SwiftUI 中的两个 ForEach
Two ForEach in SwiftUI
我想在 SwiftUI 中制作两个循环。例如:
ForEach (chapterData) { chapter in
ForEach (chapter.line) { line in
Text("\(line.text)")
}
}
chapterData 是章节 ([Chapter]) 的 table:
struct Chapter: Codable, Identifiable {
let id:Int
let line:[Line]
}
和
struct Line: Codable, Identifiable {
let id: Int
let text: String
}
我想获取 chapterData
中所有章节的 line.text
但是我无法编译这段代码,而且我认为不可能以这种方式执行两个 ForEach 循环。
有人可以帮助我吗?
我已经更改了您的章节 - 最好对任何 Collection
使用复数名称,因为它可以提高代码的可读性:
struct Chapter: Codable, Identifiable {
let id:Int
let lines: [Line]
}
您的 ForEach 语法有问题,您的第二个 ForEach 应该将 chapter.lines 作为其参数,因为这是实际列表。将外部 ForEach 包装在 VStack
或 List
中也很重要。所以您的观点正文可能如下所示:
var body: some View {
VStack {
ForEach(chapterData) { chapter in
ForEach(chapter.lines) { line in
Text(line.text)
}
}
}
}
我想在 SwiftUI 中制作两个循环。例如:
ForEach (chapterData) { chapter in
ForEach (chapter.line) { line in
Text("\(line.text)")
}
}
chapterData 是章节 ([Chapter]) 的 table:
struct Chapter: Codable, Identifiable {
let id:Int
let line:[Line]
}
和
struct Line: Codable, Identifiable {
let id: Int
let text: String
}
我想获取 chapterData
中所有章节的 line.text但是我无法编译这段代码,而且我认为不可能以这种方式执行两个 ForEach 循环。
有人可以帮助我吗?
我已经更改了您的章节 - 最好对任何 Collection
使用复数名称,因为它可以提高代码的可读性:
struct Chapter: Codable, Identifiable {
let id:Int
let lines: [Line]
}
您的 ForEach 语法有问题,您的第二个 ForEach 应该将 chapter.lines 作为其参数,因为这是实际列表。将外部 ForEach 包装在 VStack
或 List
中也很重要。所以您的观点正文可能如下所示:
var body: some View {
VStack {
ForEach(chapterData) { chapter in
ForEach(chapter.lines) { line in
Text(line.text)
}
}
}
}