struct ContentView: View {
@State var num = 0
var body: some View {
VStack {
NavigationStack {
NavigationLink(destination: {
Text("Number: \(num)")
}, label: {
Text("tap here").onTapGesture {
num += 1
print("\(num)")
}
})
}
}
}
}
在此代码中,当我点击“点击此处”导航链接时,它不会导航到新页面。它卡在
onTapGesture
中并且仅在点击时增加值。
有什么方法可以同时使用 NavigationLink 进行导航和操作吗?
您可以在
.onAppear
中执行相关操作:
NavigationStack {
NavigationLink("tap here") {
Text("Number: \(num)")
.onAppear {
num += 1
print("\(num)")
}
}
}
您可以尝试使用此方法,使用
simultaneousGesture
执行某些操作 以及 导航到目标视图。
struct ContentView: View {
@State private var num = 0
var body: some View {
VStack {
NavigationStack {
NavigationLink(destination: {
Text("Number: \(num)")
}, label: {
Text("tap here")
})
.simultaneousGesture(TapGesture().onEnded { // <--- here
num += 1
print("\(num)")
})
}
}
}
}