I attempt to swap from one display screen to a different by urgent a button (see full code beneath). The swap from the primary view to the second view (and vice versa) works, however no animation is going down.

Why does this conduct occur?

Full code:

struct ContentView: View {
    @AppStorage("firstViewActive") var isFirstViewActive: Bool = true
    
    var physique: some View {
        if isFirstViewActive {
            FirstView()
        } else {
            SecondView()
        }
    }
}

struct FirstView: View {
    @AppStorage("firstViewActive") var isFirstViewActive: Bool = true
    
    var physique: some View {
        ZStack {
            Colour(.purple).ignoresSafeArea(.all, edges: .all)
            VStack {
                Spacer()
                Textual content("That is the primary view")
                Spacer()
                Button {
                    withAnimation {
                        isFirstViewActive = false
                    }
                } label: {
                    Textual content("Go to second view")
                }
                Spacer()
            }
        }
    }
}

struct SecondView: View {
    @AppStorage("firstViewActive") var isFirstViewActive: Bool = false
    
    var physique: some View {
        ZStack {
            Colour(.blue).ignoresSafeArea(.all, edges: .all)
            VStack {
                Spacer()
                Textual content("That is the second view")
                Spacer()
                Button {
                    withAnimation {
                        isFirstViewActive = true
                    }
                } label: {
                    Textual content("Go to first view")
                }
                Spacer()
            }
        }
    }
}

1