From 486e44aae7b1164037e825da29d84bb316fdeee7 Mon Sep 17 00:00:00 2001 From: meriadec Date: Mon, 18 Jun 2018 18:17:01 +0200 Subject: [PATCH] Prevent unmounted setState and remove listener on StickyBackToTop --- src/components/StickyBackToTop.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/components/StickyBackToTop.js b/src/components/StickyBackToTop.js index 9e106978..dd2533b7 100644 --- a/src/components/StickyBackToTop.js +++ b/src/components/StickyBackToTop.js @@ -49,6 +49,7 @@ class StickyBackToTop extends PureComponent { const { scrollContainer } = this.props.getGrowScroll() if (scrollContainer) { const listener = () => { + if (this._unmounted) return const { scrollTop } = scrollContainer const visible = scrollTop > this.props.scrollThreshold this.setState(previous => { @@ -59,11 +60,12 @@ class StickyBackToTop extends PureComponent { }) } scrollContainer.addEventListener('scroll', listener) - this.releaseListener = () => scrollContainer.addEventListener('scroll', listener) + this.releaseListener = () => scrollContainer.removeEventListener('scroll', listener) } } componentWillUnmount() { + this._unmounted = true this.releaseListener() }