SwiftUI - NavigationLink 内容加载过早

CZ5*_*Z54 5 ios swift swiftui swiftui-list

我的第一个视图中有一个基本列表,如下所示:

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
}
Run Code Online (Sandbox Code Playgroud)

我正在NavigationLink为我的Project对象提供详细信息视图。

事情是,当我做一个内存分析图,我可以看到BuildsView(从创建BuildsRouter.build(forProject: project)之前,我确实点击导航链接创建

问题: 有没有办法在点击链接后创建详细信息视图?

Anu*_*ugh 4

确实,我就此写了一篇博文。作为解决方法,您可以将目标视图包装在惰性容器中。更新:从 Xcode 11.4.1 开始,NavigationLink 默认情况下是惰性的。

  • 我认为这不是真的。我使用的是 Xcode 11.4.1,NavigationLink 目标视图正在应用程序启动时加载。 (5认同)