SwiftUI的 @ObservedObject 要求被观察的对象实际存在。在某些情况下,观察一个可能为 nil 的对象会很方便。在这种情况下,可以使用 @ObservedOptionalObject。
struct SomeView: View {
// Instead of
@ObservedObject var anObject: Model? // Won't work
// use
@ObservedOptionalObject var anObject: Model?
var body: some View {
HStack {
Text("Name")
if let name = anObject?.name {
Text(name)
}
}
}
}
请注意,只有当您的内容即使在对象为 nil 时也应该显示时,@ObservedOptionalObject 才有用。否则,该视图应该包含在 if let 语句中:if let obj = obj { SomeView(anObject: obj) }
此包可通过 SwiftPM 获取
dependencies: [
.package(url: "https://github.com/fourplusone/observed-optional-object.git",
.upToNextMinor(from: "0.1.0")
)
]
此项目采用 MIT 许可证。