如果我想在RxSwift中模拟例如Bool
的标准属性,我可以使用let isValid = Variable<Bool>(false)
,然后使用.value
获取最后一个内联值,并使用.asObservable()
访问该流。如何在RxSwift中模拟可以访问最新值的计算属性?
但是,我想模拟计算propery例如var isValid { return self.password.characters.count > 0 }
,并且还能够以可观察流的形式获取最后的内联值。
我希望能够做到这两点,所以我可以写这样的代码......
if isValid.value { // isValid is Variable<Bool>
// ... do something ....
}
以及结合到例如一个TextField
我知道我可以作为一个纯Observable
写出如下...
var isValid: Observable<Bool> {
return self.username.asObservable().map { username in // username is Variable<String>
return username.characters.count > 0
}
}
但后来我不得不重构前面的例子是....
isValid.subscribe { isValid in
if isValid.element {
// ... do something ....
}
}.dispose(of: self.disposeBag)
如何那么我应该在RxSwift中表达一个可以作为内联值以及流使用的计算属性吗?