我正在使用Mosby库和 MVI,如下所述:http: //hannesdorfmann.com/android/mosby3-mvi-1
我的问题是关于如何连接 Presenter 以呈现模型,如果模型是从“业务逻辑”层接收的,但不是直接响应其视图中的 Intent。
例如,PresenterA 从 ViewA 接收到一个意图,将其转发给业务逻辑,然后业务逻辑需要向 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
,这让我很担心。