【发布时间】:2021-07-30 13:12:49
【问题描述】:
我是 RX 的新手,所以我有点困惑如何正确地做到这一点。
我的视图模型:
let feedItems: BehaviorSubject<[FeedItem]> = BehaviorSubject(value: [FeedItem]())
let isLoadingMore: PublishSubject<Bool> = PublishSubject()
let loadPageTrigger: PublishSubject<Void> = PublishSubject()
let isRefreshing: PublishSubject<Bool> = PublishSubject()
func fetchFeed(showLoading: Bool = false, loadMore: Bool = false) {
//api call and set self.feedItems.onNext(response) after completion
}
在我的VC中,我将feedItems绑定到collectionView,检查collectionView何时在底部并将其绑定到isLoadingMore,并将UIRefresherControl绑定到isRefreshing。
在我的 ViewModel 中,我想在 loadPageTrigger 中获取 isRefreshing 和 isLoadingMore 的值,并使用一些参数调用 fetchFeed:
视图模型:
override init() {
super.init()
loadPageTrigger.subscribe(onNext: {
// need to get values of isRefreshing and isLoadingMore to call fetchFeed with params
self.fetchFeed()
}).disposed(by: disposeBag)
}
【问题讨论】: