当在一个页面滑倒底部后,然后点击切换页面的,页面还是滑倒下面在,用户体验很不好,所以解决方法
新建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>
网友评论