watch<T> method

T watch<T>(
  1. GetT<T> get
)

Returns the Get object's value, and triggers a re-render when it changes.

Implementation

T watch<T>(GetT<T> get) {
  final renderer = _element.renderObject as _RenderRefPaint;
  switch (renderer._method!) {
    case _PaintMethod.hitTest:
      assert(
        throw FlutterError.fromParts([
          ErrorSummary('ref.watch() called during a RefPainter hit test.'),
          ErrorHint('Consider using ref.read() instead.'),
        ]),
      );
    case _PaintMethod.paint when _element.handledPaint:
    case _PaintMethod.buildSemantics when _element.handledSemantics:
      break;
    case _PaintMethod.paint:
      _listen(get, renderer.markNeedsPaint);
    case _PaintMethod.buildSemantics:
      _listen(get, renderer.markNeedsSemanticsUpdate);
  }
  return get.value;
}