gpt4 book ai didi

SwiftUI 可观察对象未观察到

转载 作者:行者123 更新时间:2023-11-30 10:29:57 26 4
gpt4 key购买 nike

在我学习 SwiftUI 的最新项目中,我在名为 UserData 的文件中创建了一个 Observable 对象:

final class UserData: ObservableObject {
@Published var data = jsonData
}

我在 SceneDelgate 中设置环境变量:

window.rootViewController = UIHostingController(rootView: dataList().environmentObject(UserData()))

并在相关文件中声明:

@EnvironmentObject private var userData: UserData

var body: some View {
NavigationView {
List {
ForEach(userData.data) { data in
DataRow(data: data)
}
}
}
.navigationBarTitle(Text("My Data"))
}

但我明白了:

“无法预览文件,Data.app 可能已崩溃”

检查崩溃报告,我的代码似乎找不到 UserData。然而,我相信我已经采取了所有必要的步骤来使其可观察(因为这基本上是从 Apple 教程中复制和粘贴的)。出了什么问题?

最佳答案

当使用EnvironmentObject并且您想在实时预览中进行测试时,您需要像这样手动设置对象:

struct dataList_Previews: PreviewProvider {
static var previews: some View {
dataList().environmentObject(UserData()) // Your env object
}
}

关于SwiftUI 可观察对象未观察到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59351094/

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