有没有办法返回转换后的BehaviorSubject?
class ViewModel {
let username: BehaviorSubject<String>
init() {
// I want username to emit trimmed values...
username = BehaviorSubject<String>(value: "")
// ... but map returns an Observable<>, not BehaviorSubject
.map { $0.trimmingCharacters(in: CharacterSet.whitespaces)
}
}发布于 2019-02-20 19:45:28
简短的回答是否定的,没有办法返回转换后的BehaviorSubject。
您必须首先定义要影响的输出,然后找出影响它的输入。map将介于这两者之间。举个例子:
myTextField.rx.text.orEmpty
.map { $0.trimmingCharacters(in: CharacterSet.whitespaces)
.bind(to: username)
.disposed(by: disposeBag)如果希望将username作为输出,或者
username.asObservable() // I'm not sure if the asObservable() is actually necessary at the moment. Check that.
.map { $0.trimmingCharacters(in: CharacterSet.whitespaces)
.bind(to: myLabel.rx.text)
.disposed(by: disposeBag)如果您想让username作为输入。
只需使用let username = BehaviorSubject<String>()即可创建username
https://stackoverflow.com/questions/54780416
复制相似问题