gpt4 book ai didi

ios - AttributeGraph : cycle detected through attribute using @State in playgrounds

转载 作者:行者123 更新时间:2023-12-04 14:14:12 24 4
gpt4 key购买 nike

我正在尝试在操场上使用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

我可以在实时 View 上看到该按钮。但是,如果我单击它,它不会显示文本。第二次单击确实会显示文本。进一步的点击在视觉上似乎没有任何区别。

每次单击时,我都会在日志区域收到以下消息:
=== AttributeGraph: cycle detected through attribute 38 ===

需要一些帮助来理解这在上下文中的含义以及状态为何不自然地发生的原因。

注意:我正在运行macOS Mojave,所以没有SwiftUI预览选项。我正在做操场的实时预览。

最佳答案

您的SwiftUI没问题,并且粘贴到新项目中时运行良好。

如果将Form更改为VStack,则它可以在操场上正常工作。使用列表会给您同样的错误。也许是个错误,我会report it to Apple

以我的经验,如果您暂时还停留在Mojave上,只需设置一个项目即可运行模拟器。编译和运行仅需几秒钟,当SwiftUI操场崩溃,出现类似此类的奇怪错误时,您可以节省时间。

关于ios - AttributeGraph : cycle detected through attribute using @State in playgrounds,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58147103/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com