如何将多个观察者绑定到一个 ControlProperty
How to bind multiple observers to one ControlProperty
我需要将 slider.rx.value
绑定到 2 个具有不同映射的观察者。
slider.rx.value.map { [unowned self] in self.formatter.string(from: NSNumber(value: [=10=])) ?? "" }
.bindTo(textFieldAlpha.rx.text)
.addDisposableTo(disposeBag)
slider.rx.value.map { Enhance.Global(alpha: [=10=]) }
.bindTo(enhance)
.addDisposableTo(disposeBag)
但我似乎只有最后一个绑定有效。如何实现?
这是否实现了您想要的?
let observable = slider.rx.value.shareReplay(1)
observable.map { [unowned self] in self.formatter.string(from: NSNumber(value: [=10=])) ?? "" }
.bindTo(textFieldAlpha.rx.text)
.disposed(by: disposeBag)
observable.map { Enhance.Global(alpha: [=10=]) }
.bindTo(enhance)
.disposed(by: disposeBag)
不需要缓冲区时的替代方案
let observable = slider.rx.value.share()
这里还有一个 link 到 RxSwift sheet 的一个很好的作弊 https://www.cheatography.com/donghua-li/cheat-sheets/rxswift-operators/
我需要将 slider.rx.value
绑定到 2 个具有不同映射的观察者。
slider.rx.value.map { [unowned self] in self.formatter.string(from: NSNumber(value: [=10=])) ?? "" }
.bindTo(textFieldAlpha.rx.text)
.addDisposableTo(disposeBag)
slider.rx.value.map { Enhance.Global(alpha: [=10=]) }
.bindTo(enhance)
.addDisposableTo(disposeBag)
但我似乎只有最后一个绑定有效。如何实现?
这是否实现了您想要的?
let observable = slider.rx.value.shareReplay(1)
observable.map { [unowned self] in self.formatter.string(from: NSNumber(value: [=10=])) ?? "" }
.bindTo(textFieldAlpha.rx.text)
.disposed(by: disposeBag)
observable.map { Enhance.Global(alpha: [=10=]) }
.bindTo(enhance)
.disposed(by: disposeBag)
不需要缓冲区时的替代方案
let observable = slider.rx.value.share()
这里还有一个 link 到 RxSwift sheet 的一个很好的作弊 https://www.cheatography.com/donghua-li/cheat-sheets/rxswift-operators/