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
父级上添加环境。
我在 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
父级上添加环境。