@EnvironmentObject 的 Swift 预览问题

问题描述 投票:0回答:2

在我的 Swift 项目中使用

@EnvironmentObject
时,我无法获取更新的预览。在模拟器中它工作正常,但预览却不行。它显示的错误如下:

ASET - Audio System Engineer Tools crashed due to missing environment of type: UserSettings. To resolve this add `.environmentObject(UserSettings(...))` to the appropriate preview.

但是,当我尝试添加它时,它仍然出现同样的问题。有人有一些有用的建议或解决方案吗?

swift preview environmentobject
2个回答
15
投票

找到了已经发布在堆栈溢出上的答案:我必须像这样声明它,而不是仅仅将其放入预览结构中,这使得预览更新没有任何问题:

struct CalculatorView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
            .environmentObject(UserSettings())
    }
}

0
投票

对于那些仍然遇到预览问题但可能与此无关的人,您还必须将其手动注入预览本身,因为它是独立运行的并且无法在顶层看到您的注入。

#Preview {
ContentView()
    .environmentObject(UserAuth())
}
© www.soinside.com 2019 - 2024. All rights reserved.