Jas*_*ain 2 firebase google-cloud-firestore swiftui
我有一个视图正在从前一个视图接收 ID 值。我还需要获取该 ID 值并将其传递到 ObservableObject 中,以便我可以对该 ID 运行 Firestore 查询。我不知道如何获取 ObservableObject 的 ID。
struct ItemView: View {
var itemName: String
var itemID: String
@ObservedObject var items = getItemsData()
// ..... etc
}
class getItemsData() {
@Published var data = [items]()
init() {
let db = Firestore.firestore()
db.collection("items").whereField("itemID", isEqualTo: *THIS IS WHERE I NEED THE ITEMID *),addSnapshotListner {(snap, err) in ...
}
Run Code Online (Sandbox Code Playgroud)
因此,在查询调用中,我需要调用 ItemID 值来根据视图顶部定义的值进行查询。
我认为你的getItemsData
类应该继承自 ObservableObject
class GetItemsData: ObservableObject {...}
Run Code Online (Sandbox Code Playgroud)
要将 itemId 获取到 GetItemsData 实例中,您可以向init()
class GetItemsData: ObservableObject {
init(itemId: String) {
...
}
}
Run Code Online (Sandbox Code Playgroud)
}
要将它们结合在一起,您有两种选择。您可以将 init 添加到您的 ItemView 中,例如:
struct ItemView: View {
let itemName: String
let itemModel: GetItemsData
init(itemName: String, itemID: String) {
self.itemName = itemName
itemModel = GetItemsData(itemId: itemID)
}
}
Run Code Online (Sandbox Code Playgroud)
我更喜欢将可观察对象传递到视图中,因此它更像是 MVVM 中的视图模型
struct ItemView: View {
let itemName: String
let itemModel: GetItemsData
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3880 次 |
最近记录: |