func bindSearchTextField() {
searchTextField.rx.text.asObservable().skip(3)
.debounce(0.3, scheduler: MainScheduler.instance)
.subscribe(onNext: { [weak self] searchText in
guard let strongSelf = self else {
return
}
if let text = searchText {
if text == "" {
self?.hideLoader()
self?.clearButton.isHidden = true
} else {
self?.clearButton.isHidden = false
}
strongSelf.presenter?.getAreaCodeList(text: text)
}
}).disposed(by: disposeBag)
}
我将RxSwift更新到最新版本(从4.4.0到5.1.1)后收到此错误。有人可以帮我吗?
.debounce(.milliseconds(300), scheduler: MainScheduler.instance)
代替。 [Double]的debounce(_:scheduler:)
已被删除。此外,您在订阅中做得太多。如果将订阅分成独立的单元,您会更好:
let searchText = searchTextField.rx.text.asObservable().skip(3)
.debounce(.milliseconds(300), scheduler: MainScheduler.instance)
.compactMap { $0 }
searchText
.map { $0.isEmpty }
.bind(to: clearButton.rx.isHidden)
.disposed(by: disposeBag)
searchText
.bind { [presenter] in
presenter?.getAreaCodeList(text: $0)
}
.disposed(by: disposeBag)