使用MVI与Mosby更新视图

时间:2018-01-18 01:07:06

标签: android mosby

我正在使用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时,主题的订阅者数量就会增加,这与我有关。

0 个答案:

没有答案