@EnvironmentObject 的 Swift 预览问题

Fab*_* H. 4 preview swift environmentobject

在我的 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.
Run Code Online (Sandbox Code Playgroud)

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

Fab*_* H. 19

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

struct CalculatorView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
            .environmentObject(UserSettings())
    }
}
Run Code Online (Sandbox Code Playgroud)


小智 5

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

#Preview {
ContentView()
    .environmentObject(UserAuth())
}
Run Code Online (Sandbox Code Playgroud)