我在第一个视图中有一个基本列表,如下所示:
func buildList(sections: [Client]) -> some View {
let list = List {
ForEach(sections) { client in
Section(header: Text(client.name)) {
ForEach(client.projects) { project in
NavigationLink(destination: BuildsRouter.build(forProject: project)) {
HStack {
Text("Test \(project.id)").fontWeight(.ultraLight)
}
}
}
}
}
}
return list
}
我正在使用NavigationLink
为我的Project
对象提供详细视图。
问题是,当我制作内存分析图时,我可以看到从BuildsRouter.build(forProject: project)
创建的BuildsView
在实际点击导航链接之前就已经被创建了。
问题: 是否有任何方法可以在单击链接后才创建详细视图?
NavigationLink
包装在LazyView<Content: View>
中是解决方法。参见 https://dev59.com/I1MH5IYBdhLWcg3wxijj。 - lorem ipsum