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)
}
I'm getting this error after i updated my RxSwift to latest version (from 4.4.0 to 5.1.1). Can anyone help me here?
Use: .debounce(.milliseconds(300), scheduler: MainScheduler.instance)
instead. The debounce(_:scheduler:)
that takes a Double has been removed.
Also, you are doing too much in your subscribe. You are better off if you break the subscribe up into independent units:
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)