BlocListener<B extends StateStreamable<S> , S> class
Takes a BlocWidgetListener and an optional bloc and invokes
the listener in response to state
changes in the bloc.
It should be used for functionality that needs to occur only in response to
a state
change such as navigation, showing a SnackBar
, showing
a Dialog
, etc...
The listener is guaranteed to only be called once for each state
change
unlike the builder
in BlocBuilder
.
If the bloc parameter is omitted, BlocListener will automatically
perform a lookup using BlocProvider and the current BuildContext
.
BlocListener<BlocA, BlocAState>(
listener: (context, state) {
// do stuff here based on BlocA's state
},
child: Container(),
)
Only specify the bloc if you wish to provide a bloc that is otherwise
not accessible via BlocProvider and the current BuildContext
.
BlocListener<BlocA, BlocAState>(
value: blocA,
listener: (context, state) {
// do stuff here based on BlocA's state
},
child: Container(),
)
An optional listenWhen can be implemented for more granular control
over when listener is called.
listenWhen will be invoked on each bloc state
change.
listenWhen takes the previous state
and current state
and must
return a bool which determines whether or not the listener function
will be invoked.
The previous state
will be initialized to the state
of the bloc
when the BlocListener is initialized.
listenWhen is optional and if omitted, it will default to true
.
BlocListener<BlocA, BlocAState>(
listenWhen: (previous, current) {
// return true/false to determine whether or not
// to invoke listener with state
},
listener: (context, state) {
// do stuff here based on BlocA's state
},
child: Container(),
)
- Inheritance
-
- Object
- DiagnosticableTree
- Widget
- StatefulWidget
- SingleChildStatefulWidget
- BlocListenerBase<
B, S> - BlocListener
- Implemented types
Constructors
-
BlocListener({required BlocWidgetListener<
S> listener, Key? key, B? bloc, BlocListenerCondition<S> ? listenWhen, Widget? child}) -
Takes a BlocWidgetListener and an optional
bloc
and invokes thelistener
in response tostate
changes in thebloc
. It should be used for functionality that needs to occur only in response to astate
change such as navigation, showing aSnackBar
, showing aDialog
, etc... Thelistener
is guaranteed to only be called once for eachstate
change unlike thebuilder
inBlocBuilder
.const
Properties
- bloc → B?
-
The bloc whose
state
will be listened to. Whenever the bloc'sstate
changes, listener will be invoked.finalinherited - child → Widget?
-
The widget which will be rendered as a descendant of the
BlocListenerBase.
finalinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
- key → Key?
-
Controls how one widget replaces another widget in the tree.
finalinherited
-
listener
→ BlocWidgetListener<
S> -
The BlocWidgetListener which will be called on every
state
change. This listener should be used for any code which needs to execute in response to astate
change.finalinherited -
listenWhen
→ BlocListenerCondition<
S> ? -
An optional listenWhen can be implemented for more granular control
over when listener is called.
listenWhen will be invoked on each bloc
state
change. listenWhen takes the previousstate
and currentstate
and must return a bool which determines whether or not the listener function will be invoked. The previousstate
will be initialized to thestate
of the bloc when the BlocListener is initialized. listenWhen is optional and if omitted, it will default totrue
.finalinherited - runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
createElement(
) → SingleChildStatefulElement -
Creates a StatefulElement to manage this widget's location in the tree.
inherited
-
createState(
) → SingleChildState< BlocListenerBase< B, S> > -
Creates the mutable state for this widget at a given location in the tree.
inherited
-
debugDescribeChildren(
) → List< DiagnosticsNode> -
Returns a list of DiagnosticsNode objects describing this node's
children.
inherited
-
debugFillProperties(
DiagnosticPropertiesBuilder properties) → void -
Add additional properties associated with the node.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toDiagnosticsNode(
{String? name, DiagnosticsTreeStyle? style}) → DiagnosticsNode -
Returns a debug representation of the object that is used by debugging
tools and by DiagnosticsNode.toStringDeep.
inherited
-
toString(
{DiagnosticLevel minLevel = DiagnosticLevel.info}) → String -
A string representation of this object.
inherited
-
toStringDeep(
{String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug}) → String -
Returns a string representation of this node and its descendants.
inherited
-
toStringShallow(
{String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) → String -
Returns a one-line detailed description of the object.
inherited
-
toStringShort(
) → String -
A short, textual description of this widget.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited