【发布时间】:2017-08-29 10:11:40
【问题描述】:
我在集合视图和表格视图中使用 RxSwift 进行表单处理。我遇到了一个问题。
我有一个单一的选择列表组件,我每次都在创建DisposeBag,同时配置删除所有以前的订阅者。两者都调用了onDisposed 方法,但我仍然收到重复的onNext 事件。这在开始时效果很好,但是当我重新加载集合视图或表格视图时,我遇到了这个问题。请让我知道是我做错了什么还是库中的这个错误。
var selectedIndex = Variable<Int?>(nil)
func configureRx(sender: RxRow<Int>) {
dateVarDisposable = DisposeBag()
selectedIndex
.asObservable()
.subscribe(onNext: {[weak self] (index) in
self?.selectRow(selectedIndex: index)
}, onDisposed: {
print("")
})
.addDisposableTo(disposableBag)
sender.dataVariable.asObservable()
.debug(self.stringTag, trimOutput: false)
.subscribe(onNext: { (sender) in
self.selectedIndex.value = sender
}, onDisposed: {
})
.addDisposableTo(disposableBag)
}
【问题讨论】:
-
你在哪里调用
configureRx方法?我猜你需要dispose订阅prepareForReuse方法... -
configureRx 正在 cellForRow 上被调用,是的,我已经尝试在 prepareForReuse 上使用 dispose
-
可能是因为 .addDisposableTo() 方法已被弃用,取而代之的是 .disposed(by: disposeBag)
标签: ios swift observable rx-swift