如何访问合并流的先前值?

时间:2018-07-14 15:52:52

标签: dart flutter reactive-programming

我已经为此苦苦挣扎了两个小时,似乎找不到解决方法。我将不胜感激。

我构建了一个Flutter应用程序,试图遵循BLOC模式。 我有一个带有两个文本字段的小部件:国家代码和电话号码。 我定义了一个带有两个接收器的块(每个字段一个)和一个带状态的流。流状态是两个接收器的合并,例如:

factory AuthenticationBloc(AuthenticationRepository authRepository) {
    final onPhoneChanged = PublishSubject<String>();
    final onCountryChanged = PublishSubject<String>();

    //oldState would be the last entry in the stream state.
    final stateChangeFromThePhone = onPhoneChanged.map((newPhone)=>oldState.copyWith(phone:newPhone));
    final stateChangeFromtheCountry = onCountryChanged.map((newCountry)=>oldState.copyWith(country:newCountry));
    final state = Observable.merge[stateChangeFromThePhone, stateChangeFromtheCountry];
}

这是伪代码,但是想法就在那里。我的问题是如何从oldState代码中表示的状态流中访问最新事件?

我可以定义一个变量,将其存储在状态流中的每个新事件上,但是看起来很丑...:(

有什么建议吗?

0 个答案:

没有答案