You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SwiftUI报错Thread 1:未找到Variables类型ObservableObject求助

解决SwiftUI中"找不到Variables类型的ObservableObject"错误

错误原因解析

你遇到的这个错误直白点说:用@EnvironmentObject声明storage的AddToScore视图,在它的父视图层级里找不到Variables类型的ObservableObject实例。

问题出在你的ContentView代码里:你把AddToScore()直接放在了VStack外面,而environmentObject(storage)是附加在VStack上的——这意味着只有VStack内部的子视图能拿到这个环境对象,VStack外面的AddToScore根本不在这个环境范围内,自然找不到需要的Variables实例。

修复方案

有两种简单的修复方式:

方式一:把AddToScore放到VStack内部

直接将AddToScore()移到添加了environmentObject的VStack里,这样它就能继承到环境对象:

import SwiftUI

struct ContentView: View {
    @StateObject var storage = Variables()
    var body: some View {
        VStack {
            AddToScore() // 移到VStack内部
            Button("remove points") {
                storage.score -= 1
            }
            Text("text text etxt dfahjadfbadful")
        }.environmentObject(storage)
    }
}

struct AddToScore: View {
    @EnvironmentObject var storage: Variables
    var body: some View {
        VStack {
            Text("Point generator")
                .font(.title)
            HStack {
                Button("Get points!") {
                    storage.score += 1
                }
                Text("\(storage.score)")
            }
        }
    }
}

class Variables: ObservableObject {
    @Published var score = 0
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

方式二:给AddToScore单独添加environmentObject

如果不想调整布局,也可以直接给AddToScore单独附加环境对象:

struct ContentView: View {
    @StateObject var storage = Variables()
    var body: some View {
        AddToScore()
            .environmentObject(storage) // 单独添加环境对象
        VStack {
            Button("remove points") {
                storage.score -= 1
            }
            Text("text text etxt dfahjadfbadful")
        }.environmentObject(storage)
    }
}

补充说明

使用@EnvironmentObject时要记住:必须在该视图的任意父视图上通过environmentObject(_:)注入对应的ObservableObject实例,且这个父视图必须在当前视图的层级链里。

内容的提问来源于stack exchange,提问作者oosh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 06:20:16