0

我想在 SwiftUI 中做两个循环。例如 :

ForEach (chapterData) { chapter in

  ForEach (chapter.line) { line in 

     Text("\(line.text)")
  }
}

chapterData 是 Chapter ( [Chapter] ) 的表:

struct Chapter: Codable, Identifiable { 
  let id:Int
  let line:[Line] 
} 

struct Line: Codable, Identifiable {
  let id: Int
  let text: String 
} 

我想获取 chapterData 中所有章节的 line.text

但我无法编译这段代码,我认为不可能以这种方式执行两个 ForEach 循环。

有人能帮我吗?

4

1 回答 1

2

我已经更改了您的章节 - 最好使用复数名称,Collection因为它可以提高代码的可读性:

struct Chapter: Codable, Identifiable {
  let id:Int
  let lines: [Line]
}

您的 ForEach 语法存在问题,您的第二个 ForEach 应该将 chapter.lines 作为其参数,因为这是实际列表。将您的外部 ForEach 包装在 a VStackor中也很重要List。因此,您的意见主体可能如下所示:

var body: some View {
        VStack {
            ForEach(chapterData) { chapter in
                ForEach(chapter.lines) { line in
                    Text(line.text)
                }
            }
        }
    }
于 2019-09-28T13:37:02.633 回答