cache<T> method

T cache<T>(
  1. T callback(
    1. QueryScopedValueRef<PageOrWidgetScopedValueRef> ref
    ), {
  2. List<Object> keys = const [],
  3. Object? name,
})

Caches and stores the value returned by callback.

If keys is passed a value different from the previous value, callback is executed again and the value is updated.

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.

callbackで返される値をキャッシュして保存します。

keysが前の値と違う値が渡された場合、再度callbackが実行され値が更新されます。

nameを指定すると別のタイプとして保存されます。keysを変えた場合は以前の状態は破棄されますが、nameを変えた場合は別々の状態として保持されます。

Implementation

T cache<T>(
  T Function(QueryScopedValueRef<PageOrWidgetScopedValueRef> ref) callback, {
  List<Object> keys = const [],
  Object? name,
}) {
  return getScopedValue<T, _CacheValue<T, PageOrWidgetScopedValueRef>>(
    (ref) => _CacheValue<T, PageOrWidgetScopedValueRef>(
      callback: callback,
      keys: keys,
      ref: this.ref,
    ),
    listen: false,
    name: name,
  );
}