0
変数を監視しようとしていますが、この変数の一部のプロパティが条件に合っているときは、「観測可能な」API呼び出しを作成し、その呼び出しの結果をUI素子。それは私がここにそれを提示する方法を働いているが、私は今、私は、サブスクリプション・メソッドを入れ子にしていますので、それは、より良い方法に実装することができることを考えたよ:条件付きで観測してRxSwiftをバインドする方法
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)
これを行うには、他の方法はあります?私は最初の観測でフィルタを得ることができますが、私はどのように私は他の1つを呼び出すことができ、UI上でそれをバインドすることを理解していません。
注:わかりやすくするために、他のコード行をいくつか除外しました。
あなたに(バインド 'を見ている:?'関数 –
私はあなたが2人のオブザーバーを持っているべきだと思います:テーブルリロードのための第1、あなたの 'self?.footerView'への新しいデータのバインドの第2です。ちょうど電流の実現を分ける。 –
問題は、同期が必要なことです。新しいイベントが発生したときに、テーブルをリロードしてUI呼び出しをAPI呼び出しのデータで更新する必要があります。 – sheinix