页面刷新回滚到顶部失败的问题

97 阅读1分钟

当我想在用户刷新页面后回滚到顶部的时候,碰到了回滚失败的问题,我原来是这么写的

useEffect(() => {
  window.scrollTo(0,0)
  }, [location]);

但是好像并没有效果,我看了window.scrollY变为了0,之后又回到了原来的位置。 将代码改成这样就有效了

 useEffect(() => {
    setTimeout(() => window.scrollTo(0,0), 10)
  }, [location]);

好像是因为dom还没构建完毕,所以导致回滚失败,加个定时器就好使了,但是我在想副作用函数不是在组建渲染完毕的时候执行的吗,有知道的大佬可以告诉我一下😘,而且假如页面是动态加载的话就不会出现这个问题,假如是静态页面的话就需要加定时器