SwiftUI:NavigationLink 无意中可点击并在 Form 内激活

SwiftUI: NavigationLink unintentionally tappable and activated inside Form

我似乎遇到了 NavigationLinkForm 中重新格式化的问题。我的 NavigationLink 是通过 isActive 在按下切换 showNext 的按钮时激活的。

问题是 NavigationLink 似乎会自行激活,即使通过点击 Form 似乎为 [=11 创建的空行按钮不存在也是如此=] 应该只是一个 EmptyViewForm 似乎甚至为 EmptyViews 创建了行。

所以我在想可能有一些可能的解决方案,但我不确定这些是否可行:

(1) 以某种方式完全隐藏为 NavigationLink/EmptyView 创建的行,而不禁用导航行为。

(2) 覆盖 NavigationLinkForm 格式,使其不会在点击时激活。

编辑: 似乎 .disabled(true) 可以使用选项 2,但空白部分仍然可见,这在这看起来有点老套之外是不可取的。

struct FormView  : View {
    @State var showNext: Bool = false

    var body: some View {
        NavigationView {
            Form {
               Section {
                   VStack {
                       Text("Hello")

                       NavigationLink(destination: Text("Detail View"), isActive: $showNext) 
                       { EmptyView() }
                   }
               }
            }
        }
    }
}

解决方案是将link隐藏到某些视图的背景中,如下所示

Form {
 Section {
   VStack {
      Text("Hello")
        .background(
           NavigationLink(destination: Text("Detail View"), isActive: $showNext)
             { EmptyView() }.disabled(!showNext)
         )
     }
   }
}