我正在尝试用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处理这个部分,并且它用绑定包装它。
发布于 2019-12-23 18:50:28
使用FavoriteStoresView将行更改为:
FavoriteStoresView(favoriteStores: self.$homeVM.favoriteStores)(在成员var之前添加一个$ )
https://stackoverflow.com/questions/59446914
复制相似问题