我想创建MyViewModel
从网络获取数据然后更新结果数组。MyView
应该订阅$model.results
并显示List
填充结果。
不幸的是,我收到有关“没有更多上下文的表达式类型不明确”的错误。
这种情况如何正确使用ForEach
?
import SwiftUI
import Combine
class MyViewModel: ObservableObject {
@Published var results: [String] = []
init() {
DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
self.results = ["Hello", "World", "!!!"]
}
}
}
struct MyView: View {
@ObservedObject var model: MyViewModel
var body: some View {
VStack {
List {
ForEach($model.results) { text in
Text(text)
// ^--- Type of expression is ambiguous without more context
}
}
}
}
}
struct MyView_Previews: PreviewProvider {
static var previews: some View {
MyView(model: MyViewModel())
}
}
PS如果我用一切正常替换模型@State var results: [String]
,但我需要单独class MyViewModel: ObservableObject
用于我的目的