StreamsListener2<P1 extends StreamsProvidable, P2 extends StreamsProvidable, T> constructor
StreamsListener2<P1 extends StreamsProvidable, P2 extends StreamsProvidable, T> ({
- Key? key,
- P1? provider1,
- P2? provider2,
- Stream<
T> selector(- BuildContext,
- P1,
- P2
- StreamsWidgetListener<
T> ? listener, - StreamsListenable2<
P1, P2, T> ? listenable, - Widget? child,
Implementation
StreamsListener2({
Key? key,
P1? provider1,
P2? provider2,
Stream<T> Function(BuildContext, P1, P2)? selector,
StreamsWidgetListener<T>? listener,
StreamsListenable2<P1, P2, T>? listenable,
Widget? child,
}) : assert(listenable != null || (listener != null && selector != null)),
super(
key: key,
child: child,
selector: (context) {
final p1 = provider1 ?? StreamsProvider.of<P1>(context);
final p2 = provider2 ?? StreamsProvider.of<P2>(context);
if (selector != null) return selector(context, p1, p2);
return listenable!.selector(context, p1, p2);
},
listener: listener ??
(context, data) => listenable!.handler(
context,
provider1 ?? StreamsProvider.of(context),
provider2 ?? StreamsProvider.of(context),
data,
),
);