Watch<T extends Widget> class
Watch
To watch a signal for changes in Flutter, use the Watch
widget. This will only rebuild this widget method and not the entire widget tree.
final signal = signal(10);
...
@override
Widget build(BuildContext context) {
return Watch((context, _) => Text('$signal'));
}
This will also automatically unsubscribe when the widget is disposed.
Any inherited widgets referenced to inside the Watch scope will be subscribed to for updates (MediaQuery, Theme, etc.) and retrigger the builder method.
There is also a drop in replacement for builder:
final signal = signal(10);
...
@override
Widget build(BuildContext context) {
- return Builder(
+ return Watch.builder(
builder: (context, _) => Text('$signal'),
);
}
- Inheritance
Constructors
-
Watch(T builder(BuildContext context), {Key? key, String? debugLabel, List<
ReadonlySignal> dependencies = const []}) -
Minimal builder for signal changes that rerender a widget tree.
const
-
Watch.builder({Key? key, required T builder(BuildContext context), String? debugLabel, List<
ReadonlySignal> dependencies = const []}) -
Drop in replacement for the Flutter builder widget.
const
Properties
- builder → T Function(BuildContext context)
-
The widget to rebuild when any signals change
final
- debugLabel → String?
-
Optional debug label to use for devtools
final
-
dependencies
→ List<
ReadonlySignal> -
List of optional dependencies to watch
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- key → Key?
-
Controls how one widget replaces another widget in the tree.
finalinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
build(
BuildContext context) → Widget -
Describes the part of the user interface represented by this widget.
override
-
createElement(
) → StatelessElement -
Creates a StatelessElement to manage this widget's 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