[英]How to conditionally observe and bind with RxSwift
我試圖觀察一個變量,並且當此變量的某些屬性符合條件時,我想進行“可觀察”的API調用,並將該調用的結果與某些UI元素綁定。 它以我在這里介紹的方式起作用,但是我認為可以更好地實現它,因為現在我嵌套了訂閱方法:
self.viewModel.product
.asObservable()
.subscribe { [weak self](refreshProduct) in
self?.tableView.reloadData()
self?.marketProduct.value.marketProduct = refreshProduct.element?.productId
if refreshProduct.element?.stockQuantity != nil {
self?.viewModel.getUserMarketCart()
.map({ (carts) -> Bool in
return carts.cartLines.count > 0
}).bind(onNext: { [weak self](isIncluded) in
self?.footerView.set(buyable: isIncluded)
}).disposed(by: (self?.disposeBag)!)
}
}.disposed(by: disposeBag)
還有其他方法嗎? 我可以在第一個可觀察的對象上獲得過濾器,但是我不明白如何調用另一個並在UI上綁定它。
注意:為了使代碼清晰,我排除了其他幾行代碼。
一個典型的解決方案是使用.switchLatest() ,如下所示。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.