【发布时间】:2019-09-23 20:44:49
【问题描述】:
我想创建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())
}
}
附:如果我用@State var results: [String] 替换模型一切正常,但我需要单独的class MyViewModel: ObservableObject 用于我的目的
【问题讨论】:
标签: swift swiftui combine swiftui-list