带按钮的 SwiftUI NavigationLink

SwiftUI NavigationLink with Button

我有以下代码,单击圆形按钮中的任意位置视图会发生变化。但是,self.user.day += 1 操作只有在我直接单击按钮文本时才会执行。这对我来说是非常奇怪的行为,尤其是 Swift & SwiftUI 的新手。

NavigationLink(destination: NewsView(), tag: 1, selection: $selection){
    Button(action: {self.selection = 1; self.user.day += 1}){
        Text("News").font(.body)
    }
    .frame(width: 100.0, height: 100.0)
    .foregroundColor(Color(red: 0.96, green: 0.96, blue: 0.47))
    .background(Color.black)
    .cornerRadius(90)
}

有什么想法吗?谢谢!

SwiftUI 不会检测空白区域的点击,无论您的按钮有多大,这不包括 NavigationLink

一个简单的方法,在你的情况下只是将框架设置为文本而不是像这样的按钮

Button(action: { print("tapped"); self.selection = 1 }) {
    Text("News").font(.body)
        .frame(width: 100.0, height: 100.0)
}
    //.frame(width: 100.0, height: 100.0)
    .foregroundColor(Color(red: 0.96, green: 0.96, blue: 0.47))
    .background(Color.black)
    .cornerRadius(90)