Hey there!
Could you tell me what's wrong with this code?
I have a button in my application that toggles the state.
I would like to achieve the...
For further actions, you may consider blocking this person and/or reporting abuse
This looks like an issue with stale values inside of
useEffect
.Make this change:
I have created a video on this topic here:
Cheers 🍻
Thanks Joel! :)
Thanks for the insights! With these corrections both methods work indeed!
Is there a reason to prefer one over the other?
This might work. But haven't tested though.
Thanks Eranda! Seems like it doubles the number of added key listeners with each press and soon the application stops responding.
Which means the answer is to remove keyListeners and clean up useEffect an some point? Not sure how, I've reached the limit of my Hooks understanding 😜
When we add
itWorks
as a dependency to useEffect, It will re-render for each change ofitWorks
value. So here it will cause the number of event listeners to multiply at each change.So as @Vesa Piittinen suggests it is a good idea to remove the listener if you are adding it in the useEffect hook.
You still want to remove the event listener on unmount in the second example though!
Thank you! Makes sense.
Thanks for the explanation! I appreciate it.