Я пытаюсь программно создать sh просмотров в SwiftUI, но когда я sh два представления с использованием свойства isActive для NavigationLink, последнее представление выталкивается и мгновенно появляется. Я не уверен, что я делаю что-то не так, или это ошибка SwuiftUI. 
If I push one view and then the other some times it works:

This is my code. I'm passing appState as an EnvironmentObject
class AppState: ObservableObject {
@Published var showView1 = false
@Published var showView2 = false
}
struct ContentView: View {
@EnvironmentObject var appState: AppState
var body: some View {
NavigationView {
VStack {
Button(action: {
appState.showView2 = false
appState.showView1 = true
}) {
Text("Show view 1")
}
Button(action: {
appState.showView2 = true
appState.showView1 = true
}) {
Text("Show view 2")
}
NavigationLink( destination: View1(), isActive: $appState.showView1, label: { EmptyView() })
}
}
}
}
struct View1: View {
@EnvironmentObject var appState: AppState
var body: some View {
VStack {
Text("This is view1")
Button(action: {
appState.showView2 = true
}) {
Text("Show view2")
}
NavigationLink( destination: View2(), isActive: $appState.showView2, label: { EmptyView() })
}
}
}
struct View2: View {
@EnvironmentObject var appState: AppState
var body: some View {
VStack {
Text("This is view2")
Button(action: {
appState.showView1 = false
appState.showView2 = false
}) {
Text("Back to root")
}
}
}
}
This may be related to the bug described here { ссылка }
Но в этом случае все наоборот. Представление появляется вместо нажатого
Я использую Xcode 12.0 beta 2 (12A6163b)