RxBlocListener<B extends RxBlocTypeBase, S> class
Takes a RxBlocWidgetListener 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 RxBlocBuilder.
If the bloc parameter is omitted, RxBlocListener will automatically
perform a lookup using BlocProvider
and the current BuildContext
.
RxBlocListener<BlocA, String>(
state: (bloc) => bloc.state.details
listener: (context, state) {
// do stuff here based on BlocA's state
}
)
Only specify the bloc if you wish to provide a bloc that is otherwise
not accessible via RxBlocProvider and the current BuildContext
.
RxBlocListener<BlocAType, String>(
bloc: blocA,
state: (bloc) => bloc.state.details
listener: (context, state) {
// do stuff here based on BlocA's state
}
)
An optional condition can be implemented for more granular control
over when listener is called.
The condition function will be invoked on each bloc state change.
The condition 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 RxBlocListener is initialized.
condition is optional and if it isn't implemented,
it will default to true
.
RxBlocListener<BlocA, String>(
state: (bloc) => bloc.state.details,
condition: (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
}
)
- Inheritance
-
- Object
- DiagnosticableTree
- Widget
- StatefulWidget
- SingleChildStatefulWidget
- RxBlocListenerBase<
B, S> - RxBlocListener
Constructors
-
RxBlocListener({Key? key, required RxBlocWidgetListener<
S> listener, required Stream<S> state(B), B? bloc, RxBlocListenerCondition<S> ? condition, Widget child = const SizedBox()}) -
Takes a RxBlocWidgetListener 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 a SnackBar, showing a Dialog, etc... Thelistener
is guaranteed to only be called once for eachstate
change unlike thebuilder
in RxBlocBuilder.const
Properties
- bloc → B?
-
The bloc whose state will be listened to.
Whenever the bloc's state changes, listener will be invoked.
finalinherited
- child → Widget?
-
The widget which will be rendered as a descendant
of the RxBlocListenerBase.
finalinherited
-
condition
→ RxBlocListenerCondition<
S> ? -
The RxBlocListenerCondition that the RxBlocListenerBase will invoke.
The condition function will be invoked on each bloc state change.
The condition 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 state
when the RxBlocListenerBase is initialized.
condition is optional and if it isn't implemented,
it will default to
true
.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
→ RxBlocWidgetListener<
S> -
The RxBlocWidgetListener which will be called on every state change.
This listener should be used for any code which needs to execute
in response to a state change (
Transition
). The state will be thenextState
for the most recentTransition
.finalinherited - runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
-
state
→ Stream<
S> Function(B) -
finalinherited
Methods
-
createElement(
) → SingleChildStatefulElement -
Creates a StatefulElement to manage this widget's location in the tree.
inherited
-
createState(
) → SingleChildState< RxBlocListenerBase< 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