如何快速从 JSON 文件中选择特定 id?

问题描述

我试图只选择我的 JSON 文件中的一个条目,但我正在努力做到这一点。到目前为止,这是我的代码的列表部分:

    var body: some View {
        
        NavigationView {
            Group {
                List {
                    ForEach(regions) { regions in
                   NavigationLink(destination: RegionsListView(regions: regions)) {
                       RegionButtonView(regions: regions)
                   }
              }
        }
            }
        }
        }

这是if statement

    let regions: Region
    
    var body: some View {
        if regions.id != nil {
            SCaliView()
        } else if regions.id != nil {
            BAView()
        }
    }
}
struct Region: Codable,Identifiable {
    let id: Int
    let name: String
    let image: String

}

我想让它在选择某个 id 时,会转到某个视图。

解决方法

您可以使用 ViewBuilder 在案例之后抛出任何您想要的视图。文本视图,嵌套堆栈,尽管它有点清晰地传递了预先构造的视图。只需将 Int 替换为您的 id 类型,尽管 Int 应该可以工作,然后修改 case 语句以处理您不同的 id

 @ViewBuilder func jsonSelector(using id: Int) -> some View {
      switch id {
         case 0:
      ViewA()
         case 1: 
      ViewB()
         case 2: 
      ViewC()
         case 3: 
      ViewD()


     }

}

然后把它扔到你的视野中

jsonSelector(using: myID)

如果您添加一些代码,我将编辑答案以适合您的用例,但这是一般性修复