事象
以下のように、ObservableObject
を作って、EnvironmentObject
で使おうとすると、プレビューが使えなくなってしまいます。
class ImageData: ObservableObject { @Published var imageString = "car" @Published var imageColor = Color.red } struct ContentView: View { @EnvironmentObject var imageData: ImageData var body: some View { Image(systemName: imageData.imageString) .foregroundColor(imageData.imageColor) } }
このようなよくわからないウィンドウが表示されます。。
原因
プレビューに、.environmentObject
を追加していないから。
解決方法
プレビューに以下のように.environmentObject()
を追加する。
struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() .environmentObject(ImageData()) } }