簡體   English   中英

ObservedObject 不可轉換為綁定

[英]ObservedObject not convertible to Binding

我正在嘗試使用 swiftUI 實現 MVVM

所以我有這個視圖模型

class HomeViewModel: ObservableObject {
    @Published var favoriteStores = Array<ItemStore>()

    init() {
        for i in 0...10 {
            favoriteStores.append(ItemStore(storeName: "Store \(i)", storeImg: "image url"))
        }
    }
}

這個觀點:

struct HomeView: View {
    @ObservedObject var homeVM = HomeViewModel()
    @State var faves = [
        ItemStore(storeName: "Store 0", storeImg: "image url"),
        ItemStore(storeName: "Store 1", storeImg: "image url"),
        ItemStore(storeName: "Store 2", storeImg: "image url")
    ]
    @State var searchText = ""


    var body: some View {
        NavigationView{
            GeometryReader { geometry in

                ScrollView{
                    VStack{

                        SearchBarView(searchText: self.$searchText)
                        Spacer()
                            .padding(.vertical, 5.0)
                        FavoriteStoresView(favoriteStores: self.homeVM.favoriteStores)
                        FiltersView()
                        StoresView()
                    }.padding()
                }

            }
        }
    }
}

這里的問題是,當我使用self.homeVM.favoriteStores我得到了: '[ItemStore]' is not convertible to 'Binding<[ItemStore]>'

但是當我使用@State var faves ,它工作正常

我看過很多教程,它應該像那樣工作,因為 swiftUI 處理這部分,並用Binding包裝它

將帶有FavoriteStoresView的行更改為:

FavoriteStoresView(favoriteStores: self.$homeVM.favoriteStores)

(在成員 var 前加一個$

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM