SwiftUI: How to execute closure when Alert is dismissed?

The button is constructed a little differently. You basically have to use a static factory method from Alert.Button to construct them and pass those in.

Alert(title: Text("Alert:"),
    message: Text("press OK to execute default action..."),
    dismissButton: Alert.Button.default(
        Text("Press ok here"), action: { print("Hello world!") }
    )
)

Alert(title: Text("Alert!"), message: Text("Message"),
    primaryButton: Alert.Button.default(Text("Yes"), action: {
        print("Yes")
    }),
    secondaryButton: Alert.Button.cancel(Text("No"), action: {
        print("No")
    })
)

It's possible to create alerts like this:

import SwiftUI

struct ContentView: View {

@State var showingAlert = false

var body: some View {
    VStack {
        HStack { 
                Button(action: {
                    self.showingAlert = true
            })
            {
                Text("Save")
                    .font(.headline)
            }
            .alert(isPresented: $showingAlert, content: { 
                return Alert(
                    title: Text("Save Product"), 
                    message: Text("Are you sure you want to save the changes made?"), 
                    primaryButton: .default(Text("Yes"), action: {
                        //insert an action here
                    }), 
                    secondaryButton: .destructive(Text("No")))
                    })
            }
        }
    }
}