我正在尝试在我的视图模型中获取一些数据后显示一个视图(因为数据可能是可选的,因为视图模型仅在请求时获取它)。
为什么以下操作不可行 / 我该怎么做?
@Binding var someViewModel: SomeViewModel?
var body: some View {
if let viewModel = self.someViewModel {
return filledView(with: viewModel)
}
return emptyView()
}
这里出现问题的部分是Swift UI视图生成器中的
if let
。一种解决方案是设置一个单独的布尔值,表示数据已加载,或者甚至使用枚举来标识何时数据可用以及何时不可用,但这样会导致视图代码充满可选值检查,这并不理想。例如,我想避免做以下事情:Image(systemName: someViewModel?.icon.symbol() ?? "plus_sign")
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: 60, height: 60)
.foregroundColor(Color.red)
.padding()
非常感谢您的帮助。