我在Swift UI中有一个点击手势的导航链接的问题。发生的事情是,一旦我点击导航链接,代码工作正常,点击手势上的函数将项目添加到购物车中,我被重定向到NavLink目的地。问题是,一毫秒后,我被传送回前一个视图。
录制导航链接后,视图打开,运行代码,然后关闭。
带点击手势的导航链接是这样的:
NavigationLink(destination: CartView(homeData: homeData)){
Text("Add to Cart")
.font(.title2)
.fontWeight(.heavy)
.foregroundColor(.white)
.padding(.vertical)
.frame(width: UIScreen.main.bounds.width - 30)
.background(LinearGradient(gradient: Gradient(colors: [Color("TopGradientColor"), Color("BottomGradientColor")]), startPoint: .top, endPoint: .bottom))
.cornerRadius(15)
}.simultaneousGesture(TapGesture().onEnded{
homeData.addToCart(item: item)
})
我已经尝试添加。ontapgestire{…}到文本项,但我仍然有这个问题。我已经检查了这两件事单独工作,它不是函数或视图的问题。
提前感谢大家!
您可以尝试NavigationLink
的其他初始化器,例如:
@State var currentTag: ItemType? // <-- here, adjust ItemType
NavigationLink(destination: CartView(homeData: homeData),
tag: item,
selection: $currentTag) {
Text("Add to Cart")
.font(.title2)
.fontWeight(.heavy)
.foregroundColor(.white)
.padding(.vertical)
.frame(width: UIScreen.main.bounds.width - 30)
.background(LinearGradient(gradient: Gradient(colors: [Color("TopGradientColor"), Color("BottomGradientColor")]), startPoint: .top, endPoint: .bottom))
.cornerRadius(15)
}.simultaneousGesture(TapGesture().onEnded {
print("---> simultaneousGesture")
homeData.addToCart(item: item)
self.currentTag = item // <-- here
})