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
blocand 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 bloc whose
statewill be listened to. Whenever the bloc'sstatechanges, 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
statechange. This listener should be used for any code which needs to execute in response to astatechange.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
statechange. listenWhen takes the previousstateand currentstateand must return a bool which determines whether or not the listener function will be invoked. The previousstatewill be initialized to thestateof 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, 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