Модификатор onAppear вызывается дважды при применении .navigationViewStyle(.stack) к NavigationView

[Обобщить проблему]

модификатор вызывается дважды при использовании .navigationViewStyle(.stack) на навигации.

[Опишите ожидаемые и фактические результаты]

Я ожидаю, что мне позвонят один раз, но .onAppear вызывается дважды.

РЕДАКТИРОВАТЬ: я удалил ссылку на проект и добавил гораздо более простой код шаблона, показывающий проблему.

      import SwiftUI

struct RootView: View {
    
    @State private var showDestinationView = false
    
    var body: some View {
        NavigationView {
            LeftView()
            
            NavigationView {
                NavigationLink(isActive: $showDestinationView) {
                    DestinationView()
                } label: {
                    Button("Show Destination") {
                        print("didPressButton")
                        showDestinationView = true
                    }
                }
            }
            .navigationBarTitle("Title")
            .navigationViewStyle(.stack) // Without this line, onAppear is called once.
        }
    }
}

struct DestinationView: View {
    var body: some View {
        Text("Destination View")
            .onAppear {
                print("onAppear")
            }
    }
}

struct LeftView: View {
    var body: some View {
        VStack {
            Spacer()
            
            Text("Left")
            
            Spacer()
        }
        
    }
}

И вот логи:

      didPressButton
onAppear
onAppear

0 ответов

Другие вопросы по тегам