newCachingItemRenderer<T> function
Returns an ItemRenderer that caches the results of calls. It should be used in Selection widgets.
If the item passed in is already a caching ItemRenderer, it is returned unchanged.
Implementation
ItemRenderer<T> newCachingItemRenderer<T>(ItemRenderer<T> itemRenderer) {
if (itemRenderer != null && _rendererMarker[itemRenderer] != null) {
return itemRenderer;
}
var _cache = <T, String>{};
ItemRenderer<T> cachingItemRenderer = (T item) {
String value = _cache[item]!;
if (value == null) {
value = itemRenderer(item);
_cache[item] = value;
}
return value;
};
_rendererMarker[cachingItemRenderer] = cachingItemRenderer;
return cachingItemRenderer;
}