Reactjs 单击“后退”按钮时,将路由器滚动到顶部
通过创建一个方法,我能够解决react路由器中的滚动位置问题Reactjs 单击“后退”按钮时,将路由器滚动到顶部,reactjs,ecmascript-6,react-router,Reactjs,Ecmascript 6,React Router,通过创建一个方法,我能够解决react路由器中的滚动位置问题 scrollToTop() { window.scrollTo(0, 0); } 然后将其应用到按钮上 onClick={scrollToTop} 这适用于链接,但单击“后退”按钮时不起作用。如何使“后退”按钮也能工作?我创建了一个新组件来执行此功能 ScrollToTop.jsx import React, { Component } from 'react'; import {withRouter} f
scrollToTop() {
window.scrollTo(0, 0);
}
然后将其应用到按钮上
onClick={scrollToTop}
这适用于链接,但单击“后退”按钮时不起作用。如何使“后退”按钮也能工作?我创建了一个新组件来执行此功能 ScrollToTop.jsx
import React, { Component } from 'react';
import {withRouter} from 'react-router';
import $ from 'jquery'
class ScrollToTop extends Component {
componentDidUpdate(prevProps) {
if (this.props.location.pathname !== prevProps.location.pathname) {
$('html,body').animate({scrollTop:0},'slow');
return false;
}
}
render() {
return (
this.props.children
)
}
}
export default withRouter(ScrollToTop)
将此组件添加到react应用程序的根目录中
index.js
import React from 'react'
import ReactDOM from 'react-dom'
import App from './jsx/App.jsx'
import {browserHistory} from 'react-router'
import {HashRouter as Routers} from 'react-router-dom'
import ScrollToTop from './jsx/ScrollToTop.jsx'
import {Provider} from 'react-redux';
import {store} from './redux/store'
ReactDOM.render((
<Provider store={store}>
<Routers>
<ScrollToTop>
<App />
</ScrollToTop>
</Routers>
</Provider>
),document.getElementById('main-container'))
index.js
从“React”导入React
从“react dom”导入react dom
从“./jsx/App.jsx”导入应用程序
从“react router”导入{browserHistory}
从“react router dom”导入{HashRouter as router}
从“./jsx/ScrollToTop.jsx”导入ScrollToTop
从'react redux'导入{Provider};
从“./redux/store”导入{store}
ReactDOM.render((
),document.getElementById('main-container'))
我创建了一个新组件来执行此功能
ScrollToTop.jsx
import React, { Component } from 'react';
import {withRouter} from 'react-router';
import $ from 'jquery'
class ScrollToTop extends Component {
componentDidUpdate(prevProps) {
if (this.props.location.pathname !== prevProps.location.pathname) {
$('html,body').animate({scrollTop:0},'slow');
return false;
}
}
render() {
return (
this.props.children
)
}
}
export default withRouter(ScrollToTop)
将此组件添加到react应用程序的根目录中
index.js
import React from 'react'
import ReactDOM from 'react-dom'
import App from './jsx/App.jsx'
import {browserHistory} from 'react-router'
import {HashRouter as Routers} from 'react-router-dom'
import ScrollToTop from './jsx/ScrollToTop.jsx'
import {Provider} from 'react-redux';
import {store} from './redux/store'
ReactDOM.render((
<Provider store={store}>
<Routers>
<ScrollToTop>
<App />
</ScrollToTop>
</Routers>
</Provider>
),document.getElementById('main-container'))
index.js
从“React”导入React
从“react dom”导入react dom
从“./jsx/App.jsx”导入应用程序
从“react router”导入{browserHistory}
从“react router dom”导入{HashRouter as router}
从“./jsx/ScrollToTop.jsx”导入ScrollToTop
从'react redux'导入{Provider};
从“./redux/store”导入{store}
ReactDOM.render((
),document.getElementById('main-container'))
Back按钮表示您正在渲染其他组件。尝试在导航到的componentWillMount
或componentDidMount
中添加此方法。他们在“生命周期方法”中的文档上有此按钮“后退”按钮意味着您正在呈现其他组件。尝试在导航到的componentWillMount
或componentDidMount
中添加此方法。他们在生命周期方法中的文档中有这样的内容