SwiftUI:ViewBuilder 无法创建基于数组的视图集合



我正在尝试使用 SwiftUI 构建一个简单的List。但是,我无法使用数据数组动态创建行。这是错误消息:Cannot convert value of type '(Setlist) -> SetlistRow' to expected argument type '(_) -> _'

我至少尝试了以下语法,但我总是得到同样的错误。

  • List(setlists) { }
  • List(setlists, rowContent: Setlist.init)
  • ForEach(self.setlists) { setlist in }

这是我的代码:

struct Setlist {
    var name: String = "New setlist"
    var sets = [SongSet]()
}
struct SetlistManagerView : View {
    private var setlists: [Setlist] {
        // creates an array of dummy items
    }
    var body : some View {
        List {
            ForEach(setlists) {
                SetlistRow(setlist: $0)
            }
        }
    }
}
struct SetlistRow : View {
    var setlist: Setlist
    var body : some View {
        let numberOfSongs = setlist.sets.map { $0.songs.count }.reduce(0, +)
        return NavigationView {
            NavigationButton (destination: SetListView(setlist: setlist)) {
                // code for displaying the row
            }
        }
    }
}

列表项需要符合Identifiable协议,以便将它们用作没有 identified(by:) 参数的集合数据源。

这里的Xcode错误消息具有误导性,因为该软件仍处于测试阶段。

最新更新