0

我正在使用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,这让我很担心。

4

0 回答 0