Reputation: 99
I have following code:
const useMousePlayerMove = ({ playerMe }: any) => {
console.log({playerMe}) // exist
const handleCardMove = useCallback((event: any) => {
console.log(playerMe); // undefined
}, [playerMe]);
useEffect(() => {
window.addEventListener('mousemove', handleCardMove);
return () => window.removeEventListener('mousemove', handleCardMove);
}, []);
return null;
};
There is a variable playerMe
(it is object). In console.log
I can see that it is really exist.
Once handleCardMove
is fired, playerMe
inside function is undefined
.
Why?
Same without useCallback
.
Upvotes: 0
Views: 612
Reputation: 10264
const useMousePlayerMove = ({ playerMe }: any) => {
console.log({playerMe}) // exist
const handleCardMove = useCallback((event: any) => {
console.log(playerMe); // undefined
}, [playerMe]);
useEffect(() => {
window.addEventListener('mousemove', handleCardMove);
return () => window.removeEventListener('mousemove', handleCardMove);
}, [hndleCardMove]); // Add dependency
return null;
};
Try to Add dependency on useEffect()
Upvotes: 1