我想从 tableView.rx.itemSelected
获取对象并对其进行处理。此方法返回 IndexPath
,因此我可以映射此值。但是如何从 ViewModel
获取索引处的对象呢?
struct ViewModel {
var items: Observable<[Item]>
}
大约我期望这样的事情(但这个流程是错误的):
tableView.rx.itemSelected
.map { indexPath -> Item in
return viewModel.items.map {$0[indexPath.row]}
}
..subscribe(onNext: { [unowned self] item in
//other actions with Item object
})
.disposed(by: disposeBag)
我在某处展示了这种可能性,但想不起来了。你知道怎么做吗?
最佳答案
如果您同时需要 indexPath
和 model
,您可以将这两种方法结合起来,并将它们转换为一个可观察的序列:
Observable
.zip(tableView.rx.itemSelected, tableView.rx.modelSelected(String.self))
.bind { [unowned self] indexPath, model in
self.tableView.deselectRow(at: indexPath, animated: true)
print("Selected " + model + " at \(indexPath)")
}
.disposed(by: disposeBag)
关于ios - tableView.rx.itemSelected 中的 RxSwift 双映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46521042/