cache<T> method
T
cache<T>(})
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.
If you want ScopedValue to be automatically disposed of when it is no longer referenced by any widget, set autoDisposeWhenUnreferenced
to true
.
callback
で返される値をキャッシュして保存します。
keys
が前の値と違う値が渡された場合、再度callback
が実行され値が更新されます。
name
を指定すると別のタイプとして保存されます。keys
を変えた場合は以前の状態は破棄されますが、name
を変えた場合は別々の状態として保持されます。
ScopedValueがどのウィジェットにも参照されなくなったときに自動的に破棄させたい場合はautoDisposeWhenUnreferenced
をtrue
にしてください。
Implementation
T cache<T>(
T Function(Ref ref) callback, {
List<Object> keys = const [],
String? name,
bool autoDisposeWhenUnreferenced = false,
}) {
return getScopedValue<T, _CacheValue<T>>(
(ref) => _CacheValue<T>(
callback: () => callback(ref),
keys: keys,
autoDisposeWhenUnreferenced: autoDisposeWhenUnreferenced,
),
listen: false,
name: name,
);
}