Swiftui 在继续之前等待操作表结果?

Swiftui 在继续之前等待操作表结果?,swiftui,Swiftui,我在.contextMenu中有一个按钮(即:标记为已付款) 它所做的第一件事是在操作表上切换以选择付款方式。紧接着是一些代码,通过EventKit向用户日历添加条目 我的问题是,我希望actionSheet在执行EventKit代码之前返回一个结果 你怎么让它等 特性: @State private var showPaymentSheet = false @State private var paymentType = "" var actionSheet: Actio

我在
.contextMenu
中有一个按钮(即:标记为已付款)

它所做的第一件事是在操作表上切换以选择付款方式。紧接着是一些代码,通过EventKit向用户日历添加条目

我的问题是,我希望actionSheet在执行EventKit代码之前返回一个结果

你怎么让它等

特性:

@State private var showPaymentSheet = false
@State private var paymentType = ""

var actionSheet: ActionSheet {
    ActionSheet(title: Text("Payment Method"), buttons: [
        .default(Text("You can use 
onReceive
.

Here is a simple demo:

struct ContentView: View {
    @State private var showPaymentSheet = false
    @State private var paymentType = ""

    var body: some View {
        Button("Choose payment") {
            self.showPaymentSheet.toggle()
        }
        .actionSheet(isPresented: $showPaymentSheet) {
            self.actionSheet
        }
        .onReceive(Just(paymentType)) { // <- add here
            guard !$0.isEmpty else { return }
            self.someOtherFunc()
        }
    }

    var actionSheet: ActionSheet {
        ...
    }

    func someOtherFunc() {
        print(paymentType)
    }
}
@State private var showPaymentSheet=false
@国家私有var paymentType=“”
var操作表:操作表{
操作表(标题:文本(“付款方式”),按钮:[

.default(文本(“您可以在接收时使用
onReceive

下面是一个简单的演示:

struct ContentView:View{
@国家私有var showPaymentSheet=假
@国家私有var paymentType=“”
var body:一些观点{
按钮(“选择付款”){
self.showPaymentSheet.toggle()
}
.actionSheet(显示:$showPaymentSheet){
自我行动表
}

.onReceive(Just(paymentType)){/您可以使用
onReceive

下面是一个简单的演示:

struct ContentView:View{
@国家私有var showPaymentSheet=假
@国家私有var paymentType=“”
var body:一些观点{
按钮(“选择付款”){
self.showPaymentSheet.toggle()
}
.actionSheet(显示:$showPaymentSheet){
自我行动表
}
.onReceive(Just(paymentType)){//