reselect
reselect copied to clipboard
Equivalent implementation of re-reselect for cache-key
Hi, this is more a question than a real issue.
I am not sure how I should implement reselect to have the same behavior as re-reselect with the cache-key.
Here is a simple example of a selector that may be used a lot of time in my app, so I want to prevent any re-computation of myExpensiveComputation if the selectBookById has no changed.
In re-reselect
import createCachedSelector from 're-reselect'
const selectBookById = (state, id: string) => state.books[id]
const myExpensiveComputation = () => // stuff
const myCachedSelector = createCachedSelector(
selectBookById,
myExpensiveComputation
)((_, id) => id)) // here is the cache key
In reselect 4.1.0
import { createSelector } from 'reselect'
const selectBookById = (state, id: string) => state.books[id]
const myExpensiveComputation = () => // stuff
const myCachedSelector = createSelector(
selectBookById,
myExpensiveComputation,
{
memoizeOptions: {
maxSize: 50, // Set size to 50, so if multiple components are connected to the same selector, it will not recompute
}
}
)