build method

  1. @override
Widget build()
override

Subclasses should override this function to actually call the appropriate build function (e.g., StatelessWidget.build or State.build) for their widget.

Implementation

@override
Widget build() {
  final signals = <core.ReadonlySignal>{};
  final oldOnSignalRead = core.onSignalRead;
  core.onSignalRead = (signal) {
    if (signal is core.ReadonlySignal) {
      signals.add(signal);
    }
  };

  try {
    return super.build();
  } finally {
    core.onSignalRead = oldOnSignalRead;
    if (signals.isEmpty) {
      for (final dispose in _watch.values) {
        dispose();
      }
      _watch.clear();
    } else {
      _updateWatch(signals);
    }
  }
}