EnviromentObject
プロパティラッパーを追加すると、Xcodeのプレビューは機能しません。キャンバスが構築されず、このエラーが表示されないたびに
このファイルでプレビューできません - [アプリ名] .appがクラッシュした可能性があります
EnviromentObject
プロパティラッパーをObservedObject
に置き換えて、すべてがうまく機能します。
これが私のコードです:
class NetworkManager: ObservableObject {
}
struct ContentView : View {
@EnvironmentObject var networkManager: NetworkManager
var body: some View {
Text("Canvas not working")
}
}
#if DEBUG
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView().environmentObject(NetworkManager())
}
}
#endif
_
アップデート:
バインディングを使用している場合はプレビューもロードされません。
struct ContentView : View {
@EnvironmentObject var networkManager: NetworkManager
@Binding var test123: String
var body: some View {
Text("Canvas not working")
}
}
#if DEBUG
struct ContentView_Previews: PreviewProvider {
@State static var test1 = ""
static var previews: some View {
ContentView(test123: $test1).environmentObject(NetworkManager())
}
}
#endif
_
私は同じ問題を抱えていました、そして私はその理由が何であるかを見つけました。プレビュー部分の.environmentObject()
[function()] _をContentView()
に追加するのを忘れました。
struct Content_Previews: PreviewProvider {
static var previews: some View {
ContentView().environmentObject(NetworkManager())
}
}
_
それがコード間違いを示さずにXcodeが構築されたのは、キャンバスのプレビューに衝突しました。 - 簡単な間違い、私は知っています。