首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ObservedObject不可转换为绑定

ObservedObject不可转换为绑定
EN

Stack Overflow用户
提问于 2019-12-22 18:19:05
回答 1查看 362关注 0票数 1

我正在尝试用swiftUI实现MVVM

所以我有一个视图模型

代码语言:javascript
复制
class HomeViewModel: ObservableObject {
    @Published var favoriteStores = Array<ItemStore>()

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

这一观点:

代码语言:javascript
复制
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处理这个部分,并且它用绑定包装它。

EN

回答 1

Stack Overflow用户

发布于 2019-12-23 18:50:28

使用FavoriteStoresView将行更改为:

代码语言:javascript
复制
FavoriteStoresView(favoriteStores: self.$homeVM.favoriteStores)

(在成员var之前添加一个$ )

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59446914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档