SwiftUI:ViewBuilder 无法创建基于数组的视图集合
SwiftUI: ViewBuilder unable to create a collection of Views based on array
我正在尝试使用 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: [=10=])
}
}
}
}
struct SetlistRow : View {
var setlist: Setlist
var body : some View {
let numberOfSongs = setlist.sets.map { [=10=].songs.count }.reduce(0, +)
return NavigationView {
NavigationButton (destination: SetListView(setlist: setlist)) {
// code for displaying the row
}
}
}
}
列表项需要符合 Identifiable
协议才能在没有 identified(by:)
参数的情况下用作集合数据源。
Xcode 此处的错误消息具有误导性,因为该软件仍处于测试阶段。
我正在尝试使用 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: [=10=])
}
}
}
}
struct SetlistRow : View {
var setlist: Setlist
var body : some View {
let numberOfSongs = setlist.sets.map { [=10=].songs.count }.reduce(0, +)
return NavigationView {
NavigationButton (destination: SetListView(setlist: setlist)) {
// code for displaying the row
}
}
}
}
列表项需要符合 Identifiable
协议才能在没有 identified(by:)
参数的情况下用作集合数据源。
Xcode 此处的错误消息具有误导性,因为该软件仍处于测试阶段。