我通过示例教程从SwiftUI获得了这段代码,它失败了。代码编译并运行正常,但当点击其中任何一个按钮时,它就会崩溃。我得到的错误是:线程1:致命错误:没有找到ObservableObject类型的UserSettings。作为此视图的祖先,可能缺少用于View.environmentObject(_:)的UserSettings。它附在settings.score += 1线上。
class UserSettings: ObservableObject {
@Published var score = 0}
struct DetailView: View {
@EnvironmentObject var settings: UserSettings
var body: some View {
Text("Score: \(settings.score)")
}}
struct ContentView: View {
@EnvironmentObject var settings: UserSettings
var body: some View {
NavigationView {
VStack {
Button("Increase Score") {
settings.score += 1
}
NavigationLink(destination: DetailView()) {
Text("Show Detail View")
}
}
}
}}发布于 2021-03-06 03:21:25
EnvironmentObjects必须由anscestor!提供
编辑你的主语到下面的代码:
@main
struct Your_ App_ Name_Here: App { // <<: your app name!
var body: some Scene {
WindowGroup {
ContentView()
.environmentObject(UserSettings())
}
}
}https://stackoverflow.com/questions/66501582
复制相似问题