Chrome桌面端页面滚动到顶部代码失效问题求助
路由切换时页面滚动到顶部失效问题求助
最近碰到个头疼的问题——原本用来在路由切换时滚动到页面顶部的代码突然失效了!我排查后确认componentDidUpdate函数确实被调用了,但就是找不到为啥window.scrollTo(0, 0)不起作用。
我的相关代码如下:
componentDidUpdate (prevProps) { if (prevProps.location !== this.props.location) { window.scrollTo(0, 0) } }
补充背景:我使用了路由,当路径变化时这个函数会被触发
我在网上找了各种解决方案,试过用window.setTimeout包裹滚动代码但没成功,也尝试过直接设置滚动距离:
document.body.scrollTop = 0 document.documentElement.scrollTop = 0
但问题依旧存在。更奇怪的是,这段代码在移动端(Android Chrome、iOS Safari等浏览器)还能正常工作,只有桌面端Chrome(版本74.0.3729.131)出现失效的情况,现在完全摸不着头绪,希望能得到大家的帮助!
内容的提问来源于stack exchange,提问作者SamuelRousseaux




