我正在尝试使用List
构建一个简单的SwiftUI
。但是,我无法通过使用数据数组来动态创建行。这是错误消息: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
}
}
}
}
答案 0 :(得分:0)
列表项需要符合Identifiable
协议,才能在没有identified(by:)
参数的情况下用作收集数据源。
此处的Xcode错误消息具有误导性,因为该软件仍处于测试阶段。