JuiceWidgetState2<TBloc1 extends JuiceBloc<BlocState>, TBloc2 extends JuiceBloc<BlocState>, TWidget extends StatefulWidget> class abstract

Base class for creating stateful widgets that respond to two Juice blocs.

Similar to JuiceWidgetState but handles state changes from two different blocs, merging their streams and providing access to both bloc instances.

Inheritance

Constructors

JuiceWidgetState2({BlocDependencyResolver? resolver, Set<String> groups = const {"*"}, Object? scope1, Object? scope2})
Creates a JuiceWidgetState2 with optional resolver and rebuild groups.

Properties

bloc1 → TBloc1
The first bloc instance this widget observes.
no setter
bloc2 → TBloc2
The second 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 without groupsToRebuild sends) — 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
scope1 → Object?
Optional scope keys for blocs.
final
scope2 → Object?
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 merged stream completes — i.e. once ALL of the blocs have closed, not when the first one does. 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 merged 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