@IBOutlet weak var phoneNumber: UITextField!
@IBOutlet weak var password: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
let viewModel = ViewModel(phoneNumberText: phoneNumber.rx.text.asDriver(),
passwordText: password.rx.text.asDriver())
}
When i decleared viewModel, get error: 'inout UITextField' does not conform to protocol 'ReactiveCompatible'
sorry for my bad English馃槺
Hi, @CrazyCoderShi
What is the type of passwordText in your ViewModel?
Is it Driver<String> ?
@sergdort yes
But the type of rx.text is ControlProperty<String?>
https://github.com/ReactiveX/RxSwift/blob/master/RxCocoa/iOS/UITextView%2BRx.swift#L31
I believe you need to do
.map { $0 ?? "" } // Observable<String>
There is also
let viewModel = ViewModel(phoneNumberText: phoneNumber.rx.text.orEmpty.asDriver(),
passwordText: password.rx.text.orEmpty.asDriver())
that has that .map { $0 ?? "" } internally.
Thx @kzaher, it works.
@kzaher, it works for me , haha ,nice!
Most helpful comment
There is also
that has that
.map { $0 ?? "" }internally.