createCachedSelector3<S, R1, R2, R3, K, T> function
SelectorClass<S, K, T>
createCachedSelector3<
S, R1, R2, R3, K, T>( - Selector<S, R1> selector1,
- Selector<S, R2> selector2,
- Selector<S, R3> selector3,
- T combiner(
- R1,
- R2,
- R3
),
- Selector<S, K> keySelector, {
- Map<K, Selector<S, T>>? cacheObject,
})
Implementation
SelectorClass<S, K, T> createCachedSelector3<S, R1, R2, R3, K, T>(
Selector<S, R1> selector1,
Selector<S, R2> selector2,
Selector<S, R3> selector3,
T Function(R1, R2, R3) combiner,
Selector<S, K> keySelector, {
Map<K, Selector<S, T>>? cacheObject,
}) {
final cache = cacheObject ?? FlatMapCache<K, Selector<S, T>>();
return SelectorClass(
cache,
(S state) => cache.putIfAbsent(
keySelector(state),
() => createSelector3(
selector1,
selector2,
selector3,
combiner,
)));
}