【发布时间】:2021-06-15 08:31:02
【问题描述】:
我有这段代码,我在其中调用“makeView”函数来返回一个视图,在 makeView 函数中我递增变量“id”并将其传递给视图,但是当我这样做时它显示这个错误
“从 SongBook.app (2935) 中的 SongsList_Previews 更新预览耗时超过 5 秒。”
令人惊讶的是,当我注释掉“self.id += 1”行时,一切正常。 我是 SwiftUI 新手,如果遗漏了一些信息,请见谅。
struct SongsList: View {
@State private var id: Int = 0
var body: some View {
VStack{
NavigationView {
List(songs) {
song in NavigationLink(
destination: SongMainView(song: song)) {
makeView(song: song)
}
}
}
}
.frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity, alignment: .leading)
.background(Color.orange.opacity(0.2))
.edgesIgnoringSafeArea(.all)
}
func makeView(song: Song) -> SongsIndexView {
self.id += 1;
return SongsIndexView(song: song, id: self.id)
}
}
【问题讨论】:
标签: swift swiftui swiftui-list swiftui-navigationlink swiftui-view