我正在使用Mosby库和MVI,如下所述:http://hannesdorfmann.com/android/mosby3-mvi-1
我的问题是如果从“商业逻辑”中收到模型,如何连接Presenter来呈现模型。图层,但不是直接响应其视图中的意图。
例如,PresenterA从ViewA接收一个intent,将其转发给业务逻辑,然后需要向PresenterA和PresenterB发送更新的状态(用于在ViewA和ViewB中呈现)。
但是,由于意图源自ViewA(而非ViewB),应如何配置PresenterB(在bindIntents()
中)以呈现新状态?
我尝试让业务层公开主持人会观察到的BehaviorSubject
:
override fun bindIntents() {
var updatesFromIntent =
intent(MyView::intent).flatMap { businessLogic.fromIntent() }
val viewStateUpdates : Observable<ViewState> =
Observable.merge(updatesFromIntent, businessLogic.behaviorSubject)
subscribeViewState(viewStateUpdates, MyView::render)
}
但是,每当调用onNext
时,主题的订阅者数量就会增加,这与我有关。