reactjs 如何使滚动到顶部,如果用户刷新页面与盖茨比js

v09wglhw  于 2023-06-23  发布在  React
关注(0)|答案(1)|浏览(103)

我读文档盖茨比与scroll-restoration,但这不是在我的情况下工作,所以我发现这个issue是的,如果我的垃圾邮件刷新页面回到顶部缓慢向上,所以我发现一些不同的不使用钩子useScrollRestoration盖茨比,但使用插件shouldUpdateScroll在浏览器gatsby.js和我发现一些code在stackoverflow是工作只是浏览器火狐,但不是 chrome 家庭像 chrome ,歌剧和边缘。
那么,这个code在另一个浏览器中是如何工作的呢?

3b6akqbq

3b6akqbq1#

好的,我已经卡住了,我希望这个答案能帮助每个人解决同样的问题。我用这个代码https://stackoverflow.com/a/58181253/16945930添加了一些东西
这能解决我的问题

// in gastby-browser.js
exports.shouldUpdateScroll = ({
    routerProps: { location },
    getSavedScrollPosition,
  }) => {
    const { pathname } = location
    // list of routes for the scroll-to-top-hook
    const currentPosition = getSavedScrollPosition(location)
    const scrollToTopRoutes = [`/id/`, `/en/`]
    // if the new route is part of the list above, scroll to top (0, 0)
    if (scrollToTopRoutes.indexOf(pathname) !== -1) {
      window.scrollTo(currentPosition * 0, 0)
      console.log(scrollToTopRoutes.indexOf(pathname))
    }
  
    return false
  }

在文档中应更新滚动
我们可以用函数getSavedScrollPosition取number,然后加上值为0的operator *,这样everything get dta location scroll page就变成0了
这在浏览器火狐和 chrome 家庭( chrome ,歌剧,边缘)。但不知道与safary浏览器

相关问题