我正在尝试在操场上使用 SwiftUI 的 @State。这是我的代码:
import UIKit
import PlaygroundSupport
import SwiftUI
struct ContentView: View {
@State private var showGreeting = false
var body: some View {
Form {
Button(action: {
self.showGreeting.toggle()
}) {
Text("Toggle Greeting")
}
if showGreeting {
Text("Hello World!")
}
}
}
}
let viewController = UIHostingController(rootView: ContentView())
PlaygroundPage.current.liveView = viewController
Run Code Online (Sandbox Code Playgroud)
我可以在实时取景中看到按钮。但是如果我点击它,它不会显示文本。第二次点击确实会显示文本。进一步的点击在视觉上似乎没有任何区别。
每次单击时,我都会在日志区域收到以下消息:
=== AttributeGraph: cycle detected through attribute 38 ===
Run Code Online (Sandbox Code Playgroud)
需要一些帮助来理解在这种情况下这意味着什么以及为什么状态表现得不自然。
注意:我运行的是 macOS Mojave,所以我没有 SwiftUI 预览选项。我正在使用操场的实时预览。
| 归档时间: |
|
| 查看次数: |
2921 次 |
| 最近记录: |