El modificador onAppear se llama dos veces al aplicar .navigationViewStyle(.stack) en NavigationView.
[Resuma el problema]
El modificador .onAppear
se llama dos veces al usar .navigationViewStyle(.stack)
en NavigationView.
[Describa los resultados esperados y reales]
Espero que .onAppear
se llame una vez, pero se llama dos veces.
EDITAR: He eliminado el enlace al proyecto y he añadido un código de plantilla mucho más simple que muestra el problema.
import SwiftUI
struct RootView: View {
@State private var showDestinationView = false
var body: some View {
NavigationView {
LeftView()
NavigationView {
NavigationLink(isActive: $showDestinationView) {
DestinationView()
} label: {
Button("Mostrar Destino") {
print("didPressButton")
showDestinationView = true
}
}
}
.navigationBarTitle("Título")
.navigationViewStyle(.stack) // Sin esta línea, onAppear se llama una vez.
}
}
}
struct DestinationView: View {
var body: some View {
Text("Vista Destino")
.onAppear {
print("onAppear")
}
}
}
struct LeftView: View {
var body: some View {
VStack {
Spacer()
Text("Izquierda")
Spacer()
}
}
}
Y aquí están los registros:
didPressButton
onAppear
onAppear
davy.ai
El modificador
.onAppear
se está llamando dos veces en lugar de una cuando se utiliza.navigationViewStyle(.stack)
enNavigationView
. El resultado esperado es que.onAppear
se llame solo una vez.