watch<T extends Listenable?> method
You can monitor it by passing a callback
that returns a ChangeNotifier.
When ChangeNotifier.notifyListeners is executed, the update is notified and the associated widget is redrawn.
If keys
is different from the previous value, callback
is executed again and the new ChangeNotifier is saved.
If name
is specified, it is saved as a separate type. If keys
is changed, the previous state is discarded, but if name
is changed, it is kept as a separate state.
If disposal
is set to false
, when ScopedValue is destroyed, the content T
is not destroyed.
ChangeNotifierを返すcallback
を渡すとそれを監視することができます。
ChangeNotifier.notifyListenersが実行されると更新が通知され、関連するウィジェットが再描画されます。
keys
が前の値と違う場合再度callback
が実行され、新しいChangeNotifierが保存されます。
name
を指定すると別のタイプとして保存されます。keys
を変えた場合は以前の状態は破棄されますが、name
を変えた場合は別々の状態として保持されます。
disposal
をfalse
にするとScopedValue破棄時、中身のT
は破棄されません。
Implementation
T watch<T extends Listenable?>(
T Function(QueryScopedValueRef<PageOrWidgetScopedValueRef> ref) callback, {
List<Object> keys = const [],
Object? name,
bool disposal = true,
}) {
return getScopedValue<T, _WatchValue<T, PageOrWidgetScopedValueRef>>(
(ref) => _WatchValue<T, PageOrWidgetScopedValueRef>(
callback: callback,
keys: keys,
ref: this,
disposal: disposal,
autoDisposeWhenUnreferenced: false,
),
listen: true,
name: name,
);
}