我已经为此苦苦挣扎了两个小时,似乎找不到解决方法。我将不胜感激。
我构建了一个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代码中表示的状态流中访问最新事件?
我可以定义一个变量,将其存储在状态流中的每个新事件上,但是看起来很丑...:(
有什么建议吗?