Модификатор 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