Dmitri Pavlutin walks us through properly cleaning up side-effects in React:
From time to time you might have difficulties at the intersection of component lifecycle (initial render, mount, update, unmount) and the side-effect lifecycle (start, in progress, complete).
Tackled are fetch requests, timers like setTimeout()
, debounce or throttle functions, etc.
With the techniques applied, you should no longer see warnings like the one below:
Warning: Can't perform a React state update on an unmounted component.