Reactjs 单击“后退”按钮时,将路由器滚动到顶部

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

通过创建一个方法,我能够解决react路由器中的滚动位置问题

 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
中添加此方法。他们在生命周期方法中的文档中有这样的内容