ReactiveBuilder<T> class
A widget that rebuilds when a reactive variable changes.
ReactiveBuilder automatically listens to a Reactive variable and rebuilds its child widget whenever the variable's value changes. This provides a declarative way to create reactive UI without manually managing listeners.
The widget is lightweight and efficient, using Flutter's ValueListenableBuilder internally for optimal performance.
Example:
final counter = Reactive<int>(0);
ReactiveBuilder<int>(
reactiv: counter,
builder: (context, count) {
return Text('Count: $count');
},
listener: (count) {
debugPrint('Count changed to $count');
},
buildWhen: (prev, current) => current % 2 == 0, // Only rebuild on even numbers
listenWhen: (prev, current) => current > 10, // Only listen when > 10
);
// Updates automatically when counter changes
counter.value++;
For multiple reactive variables, use ReactiveBuilderN instead.
- Inheritance
-
- Object
- DiagnosticableTree
- Widget
- StatefulWidget
- ReactiveBuilder
Constructors
-
ReactiveBuilder({Key? key, required Reactive<
T> reactiv, required Widget builder(BuildContext context, T value), void listener(T value)?, bool buildWhen(T previous, T current)?, bool listenWhen(T previous, T current)?}) -
Creates a ReactiveBuilder widget.
const
Properties
- builder → Widget Function(BuildContext context, T value)
-
Builder function called with the current value whenever it changes.
final
- buildWhen → bool Function(T previous, T current)?
-
Optional condition to determine whether the widget should rebuild.
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- key → Key?
-
Controls how one widget replaces another widget in the tree.
finalinherited
- listener → void Function(T value)?
-
Optional listener function called whenever the value changes.
final
- listenWhen → bool Function(T previous, T current)?
-
Optional condition to determine whether the listener should be invoked.
final
-
reactiv
→ Reactive<
T> -
The reactive variable to observe for changes.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
createElement(
) → StatefulElement -
Creates a StatefulElement to manage this widget's location in the tree.
inherited
-
createState(
) → State< ReactiveBuilder< T> > -
Creates the mutable state for this widget at a given location in the tree.
override
-
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