SwiftUI:带有导航链接的环境的行为是什么?

SwiftUI: What is behaviour of Environment with NavigationLinks?

我在 EnvironmentValues 中有我的自定义环境密钥。

如果我使用 viewModifier 为此类环境键设置值 .environment() 然后如果我使用 NavigationLink 导航到另一个视图,这个值将被删除?

我认为只有像 .sheet 或 NavigationView 这样的模式会阻止将环境值传递给后代视图。 NavigationLinks 也是如此吗?

struct MyView: View { 

  var body: some View { 
       View1().environment(\.key, value)
  }
}

struct View1: View { 
 var body: some View { 
   NavigationLink(isActive: $isActive) { 
      View2()
 } 
}

所以在上面的例子中 @Environment(\.key) 在 View2 中没有 return 传递值?

该值未传递,因为 View2 不是 View1 的子项。 您必须在 NavigationView 父级上添加环境。