JuiceWidgetState<TBloc extends JuiceBloc<BlocState> , TWidget extends StatefulWidget> class
abstract
Base class for creating stateful widgets that reactively respond to Juice bloc state changes.
JuiceWidgetState manages the connection between a stateful widget and a bloc, providing a structured way to handle state changes, control widget rebuilds, and manage widget lifecycle.
Type Parameters:
TBloc- The type of bloc this widget observesTWidget- The type of the stateful widget
Example usage:
class MyWidget extends StatefulWidget {
@override
State<MyWidget> createState() => MyWidgetState();
}
class MyWidgetState extends JuiceWidgetState<MyBloc, MyWidget> {
@override
Widget onBuild(BuildContext context, StreamStatus status) {
return Column(
children: [
Text(bloc.state.data),
if (status is Waiting)
CircularProgressIndicator(),
],
);
}
}
Constructors
-
JuiceWidgetState({BlocDependencyResolver? resolver, Set<
String> groups = const {"*"}, Object? scope}) - Creates a JuiceWidgetState with optional dependency resolver and rebuild groups.
Properties
- bloc → TBloc
-
The bloc instance this widget observes.
no setter
- context → BuildContext
-
The location in the tree where this widget builds.
no setterinherited
-
groups
→ Set<
String> -
Groups that control when this widget rebuilds.
Default
{'*'}rebuilds on emissions sent to EVERY widget (rebuildAlways, which is also what an emit withoutgroupsToRebuildsends) — NOT on emissions targeted at named groups. Name the groups this widget shows to rebuild on those. This set is unmodifiable to preserve immutability.final - hashCode → int
-
The hash code for this object.
no setterinherited
- mounted → bool
-
Whether this State object is currently in a tree.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- scope → Object?
-
Optional scope key for resolving scoped bloc instances.
final
- widget → TWidget
-
The current configuration.
no setterinherited
Methods
-
activate(
) → void -
Called when this object is reinserted into the tree after having been
removed via deactivate.
inherited
-
build(
BuildContext context) → Widget -
Describes the part of the user interface represented by this widget.
override
-
close(
BuildContext context) → Widget - Called when the bloc stream is closed. Override to handle cleanup or show final UI state.
-
deactivate(
) → void -
Called when this object is removed from the tree.
inherited
-
debugFillProperties(
DiagnosticPropertiesBuilder properties) → void -
Add additional properties associated with the node.
inherited
-
didChangeDependencies(
) → void -
Called when a dependency of this State object changes.
inherited
-
didUpdateWidget(
covariant TWidget oldWidget) → void -
Called whenever the widget configuration changes.
inherited
-
dispose(
) → void -
Called when this object is removed from the tree permanently.
override
-
initState(
) → void -
Called when this object is inserted into the tree.
override
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
onBuild(
BuildContext context, StreamStatus< BlocState> status) → Widget - Main build method to override. Constructs widget UI based on current status.
-
onInit(
) → void - Called when the widget is first initialized. Override to add initialization logic.
-
onStateChange(
StreamStatus< BlocState> status) → bool - Called for each state change to determine if widget should rebuild. Return false to prevent rebuild for this state change.
-
prepareForUpdate(
StreamStatus< BlocState> status) → void - Called when the stream emits a new status that passed onStateChange. Override to prepare widget for the upcoming rebuild.
-
reassemble(
) → void -
Called whenever the application is reassembled during debugging, for
example during hot reload.
inherited
-
setState(
VoidCallback fn) → void -
Notify the framework that the internal state of this object has changed.
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
-
toStringShort(
) → String -
A brief description of this object, usually just the runtimeType and the
hashCode.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited