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
- BlocListener
- Implemented types
Constructors
-
BlocListener({required BlocWidgetListener<
S> listener, Key? key, B? bloc, BlocListenerCondition<S> ? listenWhen, Widget? child}) -
Takes a
BlocWidgetListenerand an optionalblocand invokes thelistenerin response tostatechanges in thebloc. It should be used for functionality that needs to occur only in response to astatechange such as navigation, showing aSnackBar, showing aDialog, etc... Thelisteneris guaranteed to only be called once for eachstatechange unlike thebuilderinBlocBuilder.const
Properties
- bloc → B?
-
The
blocwhosestatewill be listened to. Whenever thebloc'sstatechanges,listenerwill 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
BlocWidgetListenerwhich will be called on everystatechange. Thislistenershould be used for any code which needs to execute in response to astatechange.finalinherited -
listenWhen
→ BlocListenerCondition<
S> ? -
An optional
listenWhencan be implemented for more granular control over whenlisteneris called.listenWhenwill be invoked on eachblocstatechange.listenWhentakes the previousstateand currentstateand must return a bool which determines whether or not thelistenerfunction will be invoked. The previousstatewill be initialized to thestateof theblocwhen the BlocListener is initialized.listenWhenis 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, int wrapWidth = 65}) → 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