我有一个问题,与一个导航链接,在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 {.},但仍然存在这个问题。我已经检查过,这两件事都是有效的,这不是一个功能或观点的问题。
感谢大家的提前!
发布于 2022-07-02 13:17:18
您可以尝试使用不同的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
})https://stackoverflow.com/questions/72835968
复制相似问题