ボタンビューのactionはユーザー操作によりきちんと実行されますが、
アラートのボタンのactionは、非同期処理を書かないと、反映されません。
この違いは何でしょうか。
import SwiftUI
struct View_t: View {
@State private var toSave = false
@State private var isSaved = false
var body: some View {
Button(action: {self.toSave = true }) { //ボタンタップがトリガーとなり
Text("Order")
}
Spacer().alert(isPresented: $toSave){ //アラートが表示される Alert( title: Text("Message"), message: Text("Save?"), primaryButton: .default(Text("Yes"), action: { self.isSaved = true }), //ボタンタップがトリガーとなるが、、 secondaryButton: .cancel(Text("cancel")))
}
Spacer().alert(isPresented: $isSaved) { //何も起こらない(エラーにはならない
Alert(title: Text("Message"),
message: Text("The order was saved successfully"),
dismissButton: .default(Text("OK")))
}
}
あなたの回答
tips
プレビュー