这个简单的 SwiftUI 示例有什么问题?

我有这个简单的 SwiftUI 应用,但它的行为不符合预期。

该应用程序由一个仅显示一些 hello 消息的视图和一个触发工作表呈现的工具栏按钮组成。在演示之前,将 @State 属性 (tmpEvent) 设置为所需值。

第一次显示工作表时,它不显示新分配的值,而是显示初始化值。在工作表的所有后续演示中,它都按预期工作。

我在这里遗漏了什么?

import SwiftUI

struct ContentView: View {
  @State private var presentingSheet = false
  @State private var tmpEvent = Event(desc: "default Event")
  @State private var counter = 0
  
  
  var body: some View {
    NavigationView {
      VStack {
        Text("Hello Test App")
      }
      .toolbar {
        Button(action: showSheet) {
          Label("Open sheet",systemImage: "plus")
        }
      }
      .sheet(
        isPresented: $presentingSheet,onDismiss: { tmpEvent = Event(desc: "onDismiss Event") }
      ) {
        NavigationView {
          VStack {
            Text("event: \(tmpEvent.desc)")
          }
          .navigationBarTitleDisplayMode(.inline)
          .navigationTitle(tmpEvent.desc)
          .toolbar {
            Button(action: { presentingSheet = false }) {
              Label("Close",systemImage: "xmark")
            }
          }
        }
      }
    }
  }
  
  private func showSheet() {
    counter += 1
    tmpEvent = Event(desc: "new Event \(counter)")
    presentingSheet = true
  }
}

更新:这是 Event 结构

struct Event {
  var desc: String
}

如果您想使用示例,可​​以从 GitHub 下载。

shen774013972 回答:这个简单的 SwiftUI 示例有什么问题?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/1900.html

大家都在问