【发布时间】:2020-12-09 18:08:32
【问题描述】:
我有一个听另一个集团的集团。将flutter_bloc包更新为version 6.0.2后,初始状态下监听器将不再调用。
class BlocA extends Bloc {
final BlocB blocB = ...;
...
blocA.blocB.listen((state) {
DO SOMTTHING...
});
...
}
我找到了这个解决方案:
class BlocB extends Bloc<..., ...> with BehaviorSubjectBloc {
...
}
mixin BehaviorSubjectBloc<TEvent, TState> on Bloc<TEvent, TState> {
@override
StreamSubscription<TState> listen(
void Function(TState state) onData, {
Function onError,
void Function() onDone,
bool cancelOnError,
}) {
onData(this.state);
return super.listen(
onData,
onError: onError,
onDone: onDone,
cancelOnError: cancelOnError,
);
}
}
不知道有没有更好的解决方案?
【问题讨论】:
-
你需要完成什么?从 BlocB 构造函数访问 blocA.state 并将其视为特殊情况不是解决方案吗?这是一个已知的重大更改(可悲),记录在(迁移页面](bloclibrary.dev/#/…) 上。
标签: flutter flutter-bloc