';自我';在初始化所有存储属性之前使用SwiftUI
这是我的密码。你知道这是什么错误吗?谢谢大家!';自我';在初始化所有存储属性之前使用SwiftUI,swiftui,Swiftui,这是我的密码。你知道这是什么错误吗?谢谢大家! struct PlaceholderImageView: View { @ObservedObject var imageModel: PlaceholderImageViewModel @Environment(\.MyImageCacheValue) var cache: MyImageCache init(urlString: String) { imageModel = Placeholde
struct PlaceholderImageView: View {
@ObservedObject var imageModel: PlaceholderImageViewModel
@Environment(\.MyImageCacheValue) var cache: MyImageCache
init(urlString: String) {
imageModel = PlaceholderImageViewModel(urlString: urlString, cache: cache) // error: 'self' used before all stored properties are initialized
}
var body: some View {
Text(/*@START_MENU_TOKEN@*/"Hello, World!"/*@END_MENU_TOKEN@*/)
}
}
在初始化
MyImageCache
之前,您正在尝试初始化Placeholder ImageViewModel
。解决此问题的一种方法是在PlaceholderImageView
的调用者视图中创建PlaceholderImageViewModel
,然后直接传递模型
struct PlaceholderImageViewSuperView: View {
@Environment(\.MyImageCacheValue) var cache: MyImageCache
var body: some View {
NavigationLink("Go to image view", destination: PlaceholderImageView(imageModel: PlaceholderImageViewModel(urlString: urlString, cache: cache)))
}
}
struct PlaceholderImageView: View {
@ObservedObject var imageModel: PlaceholderImageViewModel
var body: some View {
Text("Any text here")
}
}