[英]How to reset scroll position on single page pagination
我嘗試修復滾動位置。
單擊另一個分頁時,不會重置滾動位置。
前:React
CSS框架:語義UI反應
Paragraph = () => (
<p style={{whiteSpace: 'pre-wrap', wordBreak: 'break-all'}}>
{[this.state.article.content].join('')}
</p>
);
render() {
return (
<Container text style={{marginTop: '3em'}}>
<Header as="h1">{this.state.article.title}</Header>
<this.Paragraph />
</Container>
);
}
class App extends React.Component {
render() {
return (
<div className="container">
<FixedMenuLayout />
<Switch>
<Route path="/" component={List} />
<Redirect to="/" />;
</Switch>
</div>
);
}
}
完整的源代碼在這里:
https://github.com/jpskgc/article/blob/master/client/src/components/List.tsx
您可以將window.scrollTo(0, 0)
添加到setState
回調中:
async btnClick(
event: React.MouseEvent<HTMLAnchorElement>,
data: PaginationProps
) {
//...
this.setState({
articleDatas: this.state.articles.slice(this.state.begin, this.state.end),
},
() => window.scrollTo(0, 0));
}
還要注意,您的await this.setState
將無法正常工作。 setState
不返回Promise。 如果您確實想要異步setState
,則可以創建自己的幫助器:
setStateAsync(state) {
return new Promise((resolve) => {
this.setState(state, resolve)
});
}
來源 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.