我是新手,RxSwift
发现的所有示例都在处理简单案例。
我正在尝试对我的文本字段进行表单验证。我的自定义TextField类具有一个方法isValid()
和一个regexp
。该isValid
收益是基于regexp
属性。
到目前为止,我已经写了以下内容:
let valids = [mLastName, mFirstName, mEmailField].map {
$0.rx.text.map {
text -> Bool in
// I want more complex logic here
// Like return field.isValid()
return text!.characters.count > 0
}
}
let _ = Observable.combineLatest(valids) { iterator -> Bool in
return iterator.reduce(true, { $0 && $1 })
}.subscribe(onNext: { allValid in
///update button according to AllValid
})
有谁知道如何更新代码以Observable<Bool>
基于我的isValid()
方法而不是第一个text!.characters.count
我自己找到了答案。问题出在第一张地图上,我不应该使用匿名参数。
见:
let valids = [mLastName, mFirstName, mEmailField].map { field in
field.rx.text.map({ _ in return field.isValid() })
}
_ = Observable.combineLatest(valids) { iterator -> Bool in
return iterator.reduce(true, { return $0 && $1 })
}.bindTo(self.mValidateButton.rx.isEnabled)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句