[英]Need scroll to be at top on new page load - React
我有一个多页应用程序。 当我遍历到新页面时,我需要自动实现滚动到顶部。 我试过以下:
ScrollToTop.js这是放置在组件文件夹中
import React, { Component } from 'react';
import { withRouter } from 'react-router';
class ScrollToTop extends Component {
componentDidUpdate(prevProps) {
if (this.props.location !== prevProps.location) {
window.scrollTo(0, 0)
}
}
render() {
return this.props.children
}
}
export default withRouter(ScrollToTop)
和App.js
import {Router} from 'react-router-dom'
import ScrollToTop from './common/components/ScrollToTop'
const Appnew = () => (
<Router>
<ScrollToTop>
<Appnew/>
</ScrollToTop>
</Router>
)
const App = (props) => {
{Appnew()}
}
这是行不通的。 有什么建议么?
你应该尝试改变这个
componentDidUpdate(prevProps) {
if (this.props.location !== prevProps.location) {
window.scrollTo(0, 0)
}
}
经过
componentDidMount() {
window.scroll({
top: 0,
left: 0
});
}
它会做什么,当组件被安装时,它会滚动到顶部。
你也可以使用下面的事件来监听 DOM 并在加载它时做任何你想做的事情
window.addEventListener('DOMContentLoaded', (event) => {
// Your code
});
你的 hoc 没有任何问题。 假设您的Appnew
具有用Route
封装的组件,它应该可以工作。
刚刚使用了你的 hoc 并准备了一个运行良好的演示。 看一看。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.