我有一个从上一个视图接收 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 ...
}
因此,在查询调用中,我需要调用 ItemID 值以根据在视图顶部定义的该值进行查询。
我认为你的getItemsData
类应该从 ObservableObject 继承
class GetItemsData: ObservableObject {...}
要将 itemId 放入您的 GetItemsData 实例,您可以向您的 init()
class GetItemsData: ObservableObject {
init(itemId: String) {
...
}
}
}
要将这一切联系在一起,您有两个选择。您可以向您的 ItemView 添加一个 init ,例如:
struct ItemView: View {
let itemName: String
let itemModel: GetItemsData
init(itemName: String, itemID: String) {
self.itemName = itemName
itemModel = GetItemsData(itemId: itemID)
}
}
我更喜欢将 observable 对象传递给视图,所以它更像是 MVVM 中的视图模型
struct ItemView: View {
let itemName: String
let itemModel: GetItemsData
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句