【发布时间】:2020-05-26 15:11:41
【问题描述】:
我有一个观点,我想在其中包含一个 if 语句,但是当 if 语句被添加到 ForEach 闭包时,它会导致触发此错误。有什么解决方法吗?
import Foundation
import SwiftUI
struct SearchResults: View {
@ObservedObject var VModel: ViewModel
var body: some View {
List {
ForEach(self.VModel.searchResults, id: \.self) { result in
self.RowText
}
}
}
private var RowText: some View {
if result.country != nil { //Cannot access the result variable here?
return Text("First conditional met!")
} else {
return Text("Second conditional met!")
}
}
}
旁注:searchResults 是 GeocodedPlacemark 类型的数组。 VModel 是一个地理编码类。
【问题讨论】:
-
如果它是nil,你需要返回一些东西
-
查看this 答案,了解如何在
View的body内设置条件SwiftUIView。如果条件为假,则需要返回EmptyView。 -
@DávidPásztor 我不认为我可以返回视图,它会弄乱视图的外观......如果你可以再看看我的代码,我怎么能引用'结果' RowText 视图中的变量?
-
@nickcoding
EmptyView不会创建任何可视视图,因此不会弄乱您的 UI -
@DávidPásztor 好吧...如果我只返回 EmptyView(),我仍然会遇到同样的错误,如 Andrew 的回答所示
标签: swift view swiftui geocode