Skip to content

Instantly share code, notes, and snippets.

@mudssrali
Last active October 12, 2020 04:51
Show Gist options
  • Save mudssrali/afd7f8a869d0a597b185b9c17978540a to your computer and use it in GitHub Desktop.
Save mudssrali/afd7f8a869d0a597b185b9c17978540a to your computer and use it in GitHub Desktop.
A simple approach to handle scroll-to-top in reactjs with react-router-dom with useEffect hook
  • Create a wrapper component
import React, { useEffect } from 'react'
import { withRouter, RouteComponentProps } from 'react-router-dom'

const ScrollTop: React.FC<RouteComponentProps> = ({ history, children }) => {
	useEffect(() => {
		const unlisten = history.listen(() => {
			window.scrollTo(0, 0)
		})
		return () => {
			unlisten()
		}
	}, [history])

	return <>{children}</>
}

const ScrollToTop = withRouter(ScrollTop)

export { ScrollToTop }
  • use with router
<Router>
	<ScrollToTop>
		<Switch>
			<Route path="/" component={Home} />
		</Switch>
	</ScrollToTop>
</Router>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment