我正在为相关条目的数组做导航堆栈
var body: some View {
NavigationStack(path: $navPath){
VStack {
List(Array(plant.event as! Set<Event>), id: \.self) { eventInList in
NavigationLink(destination: EventPageView(event: eventInList)) {
EventCardRowView(event: eventInList)
}.listRowBackground(Color("ChampagnePink"))
}.navigationDestination(for: Event.self) { event in
EventPageView(event: event)
}
}
}
}
而这一个不工作-所有的事件被推到导航堆栈一次-如果我点击一个事件,我只是下降到所有事件的链conquently。
虽然它的工作完全正确,当我现在用相关实体做它时,但是作为单独获取的数组:
NavigationStack(path: $navPath){
VStack {
List(events, id: \.date) { eventInList in
NavigationLink(destination: EventPageView(event: eventInList)) {
EventCardRowView(event: eventInList)
}.listRowBackground(Color("ChampagnePink"))
}.navigationDestination(for: Event.self) { event in
EventPageView(event: event)
}
}
}
什么是错误的,什么是正确的方式来做,与关系条目一对多?
编辑:我的问题与CoreData one-to-many relationship. Problem with NSSet attribution不同
我没有问题,以获取和查看列表-我获取相关enries数组和列表它的罚款,但点击列表项不正常工作-整个数组是推栈一次-这意味着如果我点击事件3返回按钮将带我到事件2,然后1
2条答案
按热度按时间bq9c1y661#
看来您对NavigationStack和NavigationLink的配置可能是问题的原因。请确保在使用一对多连接时,每个NavigationLink仅负责导航到一个事件,而不是所有事件。
可能行得通
ulydmbyx2#
当Navigation堆栈包含Form或包含Form时,Form会触发所有数组条目在NavigationStack上发送,所以解决方案只是单独使用它们