LogoSignals.dart
Copy Markdown
rodydavis/signals.dart 999999

Type: SignalHookWidget

API reference and details for SignalHookWidget from signals.dart.

SignalHookWidget#

Kind: class  |  Package: package:signals_hooks

Class: SignalHookWidget#

A premium reactive widget that both supports Flutter Hooks and implicitly tracks and rebuilds on signal changes.

SignalHookWidget establishes a dynamic reactive context directly at the Flutter element layer. Any signal accessed via .value inside the build method is implicitly tracked and subscribed to. At the same time, you can call any hooks (like useFocusNode, useTextEditingController, etc.) within build.

This provides the ultimate developer experience, combining the power of implicit, boilerplate-free signal tracking with the rich lifecycle management of Flutter Hooks.

Dual Reactivity Example#

final globalCartCount = signal(0);

class MyDualWidget extends SignalHookWidget {
  const MyDualWidget({super.key});

  @override
  Widget build(BuildContext context) {
    // 1. Declare hooks seamlessly:
    final controller = useTextEditingController();
    final focusNode = useFocusNode();
    final localCounter = useSignal(0);

    // 2. Implicit tracking of external/global signals:
    // No .watch(context) needed! Just accessing .value tracks it.
    return Column(
      children: [
        TextField(controller: controller, focusNode: focusNode),
        Text('Global Signal: ${globalCartCount.value}'),
        Text('Local Signal: ${localCounter.value}'),
      ],
    );
  }
}

Members of SignalHookWidget#

Member Type Signature Description
SignalHookWidget constructor dart SignalHookWidget({super.key}) Constructor for SignalHookWidget.
createElement method dart StatelessElement createElement()
build method dart Widget build(BuildContext context) Subclasses override this method to define their widget tree.
buildWidget method dart Widget buildWidget(BuildContext context) Subclasses override this method instead of build to define their widget tree.

References#

The SignalHookWidget type is referenced and used in the following pages: