@@ -24,8 +24,6 @@ const useIsomorphicLayoutEffect =
24
24
* useful if you provide a selector that memoizes values).
25
25
*
26
26
* @param {Function } selector the selector function
27
- * @param {any[] } deps (optional) dependencies array to control referential stability
28
- * of the selector
29
27
*
30
28
* @returns {any } the selected state
31
29
*
@@ -36,11 +34,11 @@ const useIsomorphicLayoutEffect =
36
34
* import { RootState } from './store'
37
35
*
38
36
* export const CounterComponent = () => {
39
- * const counter = useSelector(state => state.counter, [] )
37
+ * const counter = useSelector(state => state.counter)
40
38
* return <div>{counter}</div>
41
39
* }
42
40
*/
43
- export function useSelector ( selector , deps ) {
41
+ export function useSelector ( selector ) {
44
42
invariant ( selector , `You must pass a selector to useSelectors` )
45
43
46
44
const { store, subscription : contextSub } = useReduxContext ( )
@@ -51,15 +49,13 @@ export function useSelector(selector, deps) {
51
49
contextSub
52
50
] )
53
51
54
- const memoizedSelector = useMemo ( ( ) => selector , deps )
55
-
56
52
const latestSubscriptionCallbackError = useRef ( )
57
- const latestSelector = useRef ( memoizedSelector )
53
+ const latestSelector = useRef ( selector )
58
54
59
55
let selectedState = undefined
60
56
61
57
try {
62
- selectedState = memoizedSelector ( store . getState ( ) )
58
+ selectedState = selector ( store . getState ( ) )
63
59
} catch ( err ) {
64
60
let errorMessage = `An error occured while selecting the store state: ${
65
61
err . message
@@ -77,7 +73,7 @@ export function useSelector(selector, deps) {
77
73
const latestSelectedState = useRef ( selectedState )
78
74
79
75
useIsomorphicLayoutEffect ( ( ) => {
80
- latestSelector . current = memoizedSelector
76
+ latestSelector . current = selector
81
77
latestSelectedState . current = selectedState
82
78
latestSubscriptionCallbackError . current = undefined
83
79
} )
0 commit comments