由于某些原因,以下代码显示的警报具有同一按钮的三个实例,没有一个实例会触发预期的操作:
还有其他人经历过吗?关于修复的任何建议吗?
它基于Xcode 11.2.1(针对iOS 13.0目标),然后通过Catalyst在macOS(10.15.1)上运行。
更新1:这似乎是Catalyst特有的问题。在iPhone模拟器上运行相同的代码时,它会显示一个按钮并按预期执行操作。
更新2:通过更新到Xcode 11.3和macOS 10.15.2也未解决该问题。
public struct contactusView: View {
@ObservedObject private var contactusVM: contactusViewModel
private var successAlert: Alert {
Alert(
title: Text("Email Sent"),message: Text("Thanks for taking the time to reach out to us. We appreciate it!"),dismissButton: .default(Text("OK")) {
self.dismissSelf()
}
)
}
public var body: some View {
Form {
// ...
}
.alert(isPresented: self.$contactusVM.contactAttemptSucceeded) {
self.successAlert
}
}
public init() {
self.contactusVM = contactusViewModel()
}
private func dismissSelf() {
print("Dismissing!")
}
}
class contactusViewModel: ObservableObject {
@Published var contactAttemptSucceeded: Bool = true
}