SwiftUI tiene dos alertas en una vista, una de las cuales está anulada

        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"))
            }
        }
    }
}

Supongo que te gusta

Origin blog.csdn.net/qq_24459277/article/details/130860297
Recomendado
Clasificación