BaseProvider<T extends BaseBloc>.create constructor
BaseProvider<T extends BaseBloc>.create ({
- required Key key,
- required BaseInherited<
T> inherited, - BaseFunction<
T> ? initialize, - BaseFunction<
T> ? update,
Implementation
factory BaseProvider.create({
required Key key,
required BaseInherited<T> inherited,
BaseFunction<T>? initialize,
BaseFunction<T>? update,
}) {
if (_instances[key] == null) {
_instances[key] = BaseProvider<T>._init(key: key, inherited: inherited);
if (initialize != null)
initialize(_instances[key]!._inherited._bloc as T,
_instances[key]?._subscriptions);
_instances[key]?._subscriptions.add(
_instances[key]?._inherited._bloc.exceptionStream?.listen(
(BaseException? e) =>
_instances[key]?._inherited.exception?.add(e),
) as StreamSubscription<BaseException?>,
);
} else {
if (update != null) {
update(_instances[key]!._inherited._bloc as T,
_instances[key]!._subscriptions);
}
_instances[key] = BaseProvider<T>._copy(key: key, inherited: inherited);
}
return _instances[key]! as BaseProvider<T>;
}