watch<T> method
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;
}