在我的 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.
但是,当我尝试添加它时,它仍然出现同样的问题。有人有一些有用的建议或解决方案吗?
找到了已经发布在堆栈溢出上的答案:我必须像这样声明它,而不是仅仅将其放入预览结构中,这使得预览更新没有任何问题:
struct CalculatorView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
.environmentObject(UserSettings())
}
}
对于那些仍然遇到预览问题但可能与此无关的人,您还必须将其手动注入预览本身,因为它是独立运行的并且无法在顶层看到您的注入。
#Preview {
ContentView()
.environmentObject(UserAuth())
}