RxSwift Error: Property 'text' requires that 'UITextField' inherit from 'UILabel'
RxSwift Error: Property 'text' requires that 'UITextField' inherit from 'UILabel'
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)
。 debounce(_:scheduler:)
已经删除了 Double。
此外,您在订阅方面做得太多了。如果您将订阅分成独立的单元,您会过得更好:
let searchText = searchTextField.rx.text.asObservable().skip(3)
.debounce(.milliseconds(300), scheduler: MainScheduler.instance)
.compactMap { [=10=] }
searchText
.map { [=10=].isEmpty }
.bind(to: clearButton.rx.isHidden)
.disposed(by: disposeBag)
searchText
.bind { [presenter] in
presenter?.getAreaCodeList(text: [=10=])
}
.disposed(by: disposeBag)
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)
。 debounce(_:scheduler:)
已经删除了 Double。
此外,您在订阅方面做得太多了。如果您将订阅分成独立的单元,您会过得更好:
let searchText = searchTextField.rx.text.asObservable().skip(3)
.debounce(.milliseconds(300), scheduler: MainScheduler.instance)
.compactMap { [=10=] }
searchText
.map { [=10=].isEmpty }
.bind(to: clearButton.rx.isHidden)
.disposed(by: disposeBag)
searchText
.bind { [presenter] in
presenter?.getAreaCodeList(text: [=10=])
}
.disposed(by: disposeBag)