Open
Description
I'm aware that this is a bug tracker and not a support system. But there is one place in the official documentation which puzzles me. I just wonder if react-redux
team has decided to pick one implementation over another for a specific reason or else.
https://react-redux.js.org/next/api/hooks#useselector-examples
const makeNumOfTodosWithIsDoneSelector = () =>
createSelector(
state => state.todos,
(_, isDone) => isDone,
(todos, isDone) => todos.filter(todo => todo.isDone === isDone).length
)
const selectNumOfTodosWithIsDone = useMemo(
makeNumOfTodosWithIsDoneSelector,
[]
)
const numOfTodosWithIsDoneValue = useSelector(state =>
selectNumOfTodosWithIsDone(state, isDone)
)
Can I ask why the team decided to give this example instead of curried function and partial application?
const makeNumOfTodosWithIsDoneSelector = () => isDone =>
createSelector(
state => state.todos,
todos => todos.filter(todo => todo.isDone === isDone).length
)
const selectNumOfTodosWithIsDone = useMemo(
makeNumOfTodosWithIsDoneSelector,
[]
)
const numOfTodosWithIsDoneValue = useSelector(selectNumOfTodosWithIsDone(isDone))
)
Is there some performance/cache implications? Or it is just easier to read and understand for everyone who is reading this documentation?