useBlocListener<BLOC extends BlocBase<S> , S> function
void
useBlocListener<BLOC extends BlocBase<S> , S>(
- BLOC bloc,
- BlocListener<
BLOC, S> listener, { - BlocListenerCondition<
S> ? listenWhen,
Calls callback function listener
each time when listenWhen
conditions are fulfilled
listener
callback function
listenWhen
local filter function, that will pass incoming states from BlocBase.stream
. By default passes all states.
Implementation
void useBlocListener<BLOC extends BlocBase<S>, S>(
BLOC bloc,
BlocListener<BLOC, S> listener, {
BlocListenerCondition<S>? listenWhen,
}) {
final context = useContext();
final configuredListener = useHookedBlocConfig().listenerCondition;
final listenWhenConditioner = listenWhen ?? configuredListener;
useEffect(
() {
final subscription = bloc.stream.where(listenWhenConditioner).listen(
(state) => listener(
bloc,
state,
context,
),
);
return subscription.cancel;
},
[bloc],
);
}