我想在 SwiftUI 中做两个循环。例如:
ForEach (chapterData) { chapter in
ForEach (chapter.line) { line in
Text("(line.text)")
}
}
章节数据是章节([章节](的表格:
struct Chapter: Codable, Identifiable {
let id:Int
let line:[Line]
}
和
struct Line: Codable, Identifiable {
let id: Int
let text: String
}
我想获取章节数据中所有章节的行文本
但我无法编译此代码,我认为不可能以这种方式执行两个 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)
}
}
}
}