Scroll to top on location change
This commit is contained in:
parent
01eb8c8d3c
commit
6b0c0f2d88
1 changed files with 41 additions and 25 deletions
18
src/App.js
18
src/App.js
|
|
@ -2,7 +2,8 @@ import React, { Component } from 'react';
|
||||||
import {
|
import {
|
||||||
BrowserRouter as Router,
|
BrowserRouter as Router,
|
||||||
Route,
|
Route,
|
||||||
Switch
|
Switch,
|
||||||
|
withRouter
|
||||||
} from 'react-router-dom';
|
} from 'react-router-dom';
|
||||||
|
|
||||||
import hljs from 'highlight.js';
|
import hljs from 'highlight.js';
|
||||||
|
|
@ -26,6 +27,7 @@ class App extends Component {
|
||||||
render() {
|
render() {
|
||||||
return (
|
return (
|
||||||
<Router>
|
<Router>
|
||||||
|
<ScrollToTop>
|
||||||
<div className="App">
|
<div className="App">
|
||||||
<Header title={this.title} />
|
<Header title={this.title} />
|
||||||
|
|
||||||
|
|
@ -56,6 +58,7 @@ class App extends Component {
|
||||||
<Footer />
|
<Footer />
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
</ScrollToTop>
|
||||||
</Router>
|
</Router>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
@ -69,6 +72,19 @@ class App extends Component {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class ScrollToTop extends Component {
|
||||||
|
componentDidUpdate(prevProps) {
|
||||||
|
if (this.props.location !== prevProps.location) {
|
||||||
|
window.scrollTo(0, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
render() {
|
||||||
|
return this.props.children
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ScrollToTop = withRouter(ScrollToTop);
|
||||||
|
|
||||||
// Dummy About page just for playing around with ReactRouter
|
// Dummy About page just for playing around with ReactRouter
|
||||||
class About extends Component {
|
class About extends Component {
|
||||||
render () {
|
render () {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue