NavigationLinks 正在分组

NavigationLinks are being grouped

我有一个餐厅菜单应用程序,它在菜单的各个部分内对菜单项进行分组,每个菜单项上都有 NavigationLinks,旨在显示该项目的更详细描述。一个部分中的所有菜单项都被组合在一起,就好像它们只是一个 link 并触发错误“致命错误:UIKitNavigationBridge:多个活动目的地:文件 SwiftUI”。换句话说,当您单击任何单个项目时,它会尝试显示该部分中所有项目的详细信息。

我正在使用显示各个部分的剖面视图执行此操作,每个部分依次显示该部分中的项目。

这似乎是 SwiftUI 中的一个错误,但由于我对 SwiftUI 比较陌生,所以我想我应该寻求更多经验丰富的建议。

import SwiftUI

struct MenuSectionView: View
{
    @Environment(\.managedObjectContext) var managedObjectContext
    @EnvironmentObject var env: GlobalEnvironment
    
    var group: Group
    var items: [MenuItem]
    
    init(group: Group)
    {
        self.group = group
        items = getMenuItems(businessid: group.businessid!, groupid: group.groupid)
    }
    
    var body: some View
    {
        VStack
        {
            ForEach (items, id: \.itemid)
            {
                itemx in
                if group.groupid == itemx.groupid
                {
                    MenuItemView(item: itemx)
                }
            }
        }
    }
}

import SwiftUI
import CoreData

struct MenuItemView: View
{
    @Environment(\.managedObjectContext) var context
    @EnvironmentObject var env: GlobalEnvironment
    
    var item: MenuItem  
    
    init(item: MenuItem)
    {
        self.item = item
    }
    
    var body: some View
    {
        return VStack
        {
            
                NavigationLink(destination: DetailView(item: item))
                {
                    VStack
                    {
                        HStack
                        {
                            if let image = item.image
                            {
                                Image(uiImage: UIImage(data: image)!).resizable().frame(width: 40, height: 40).cornerRadius(5)
                            } else
                            {
                                Image(item.name!).resizable().frame(width: 40, height: 40).cornerRadius(5)
                            }
                                Text(item.name!)
                        }
                        Text(item.desc!)
                    }
                }
             }
        }
    }
}

显然,上述示例中的 VStack 是 error/bug 的原因。我删除了它,现在链接可以正常工作了。它仍然是一个错误,因为在更复杂的迭代中,需要 VStack。我发现堆栈中的按钮也会发生同样的事情。