Es así. Recientemente escribí una página. Después de hacer clic en dos botones, aparecerá una alerta para avisar al usuario. El segundo se agregó recientemente. Como resultado, se envió el código. Al día siguiente, mi colega dijo que el anterior La alerta no era válida. Probablemente esto sea así: la primera alerta no aparecerá después de hacer clic en ella.
El código en cuestión:
@State private var showFirstAlert = false
@State private var showSecondAlert = false
VStack{
Button(action: {
showFirstAlert = true
}) {
Text("alert111111")
}
Button(action: {
showSecondAlert = true
}) {
Text("alert22222")
}
}
.alert(isPresented: $showFirstAlert) {
// This alert never shows
Alert(title: Text("First Alert"), message: Text("This is the first alert"))
}
.alert(isPresented: $showSecondAlert) {
// This alert does show
Alert(title: Text("Second Alert"), message: Text("This is the second alert"))
}
Código corregido:
enum ActiveAlert {
case first, second
}
struct ContentView: View {
@State private var showAlert = false
@State private var activeAlert: ActiveAlert = .first
var body: some View {
Button(action: {
self.activeAlert = .first
showAlert = true
}) {
Text("alert111111")
}
Button(action: {
self.activeAlert = . second
showAlert = true
}) {
Text("alert22222")
}.alert(isPresented: $showAlert) {
switch activeAlert {
case .first:
return Alert(title: Text("First Alert"), message: Text("This is the first alert"))
case .second:
return Alert(title: Text("Second Alert"), message: Text("This is the second alert"))
}
}
}
}