美文网首页
React跳转路由的时候,如果页面滑动了,跳转后置顶

React跳转路由的时候,如果页面滑动了,跳转后置顶

作者: 甘道夫老矣 | 来源:发表于2020-06-20 15:07 被阅读0次

    当在一个页面滑倒底部后,然后点击切换页面的,页面还是滑倒下面在,用户体验很不好,所以解决方法
    新建js文件

    import React, { Component } from "react";
    import { withRouter } from "react-router-dom";
    
    class ScrollToTop extends Component {
        componentDidUpdate(prevProps) {
            //  console.log(this.props.hook);
            if (this.props.location.pathname !== prevProps.location.pathname) {
                this.props.hook.scrollIntoView();
            }
        }
    
        render() {
            return this.props.children;
        }
    }
    export default withRouter(ScrollToTop);
    
    

    在路由跳转的地方导入,比如左侧导航,右侧是视图,那么一般在main.js中做路由跳转
    tip:这里是控制这个hook这个div的滚动问题,那么讲这个div的dom传入ScrollToTop里面,然后在上面的钩子函数中进行页面切换的时候,进行判断,然后进行置顶,记住,这里必须是dom,如果挂载组件行不通

    
    <div ref={(hook) => (this.hook = hook)}>
      <ScrollToTop hook={this.hook}>
        <Switch>
                 <Route key={index} path={item.path}/>
            </Switch>
      </ScrollToTop>
    </div>
    

    相关文章

      网友评论

          本文标题:React跳转路由的时候,如果页面滑动了,跳转后置顶

          本文链接:https://www.haomeiwen.com/subject/wyzwxktx.html