【发布时间】:2020-09-22 00:52:03
【问题描述】:
我正在尝试在 NavigationView 的列表的每一行中包含导航链接的动态列表。但是,每当我点击其中一个链接时,导航都会来回跳转几次。
是什么导致来回导航?是否可以用 SwiftUI 以其他方式表达这种模式以避免这个问题?
import SwiftUI
struct MonthData: Hashable, Codable, Identifiable {
var id: Int
var name: String
var tasks: [TaskData]
}
struct TaskData: Hashable, Codable, Identifiable {
var id: Int
var name: String
}
let months: [MonthData] = [
MonthData(id: 1, name: "January", tasks: []),
MonthData(id: 2, name: "February", tasks: [
TaskData(id: 21, name: "Do something"),
TaskData(id: 22, name: "Do something else")
])
]
struct FooView: View {
var body: some View {
NavigationView {
List(months) { month in
VStack {
ForEach(month.tasks) { task in
NavigationLink(
destination: Text(task.name)
) {
Text(task.name)
}
}
}
}
.navigationBarTitle(Text("Months"))
}
}
}
struct FooView_Previews: PreviewProvider {
static var previews: some View {
FooView()
}
}
【问题讨论】: