react-transition-group/react-router 在路由更改时跳转到窗口顶部

Dev*_*ves 2 reactjs gatsby react-transition-group

https://www.wealthsimple.com/en-ca/culture/

如果您在内部页面上滚动任意距离并导航到另一个页面,它会快速跳转到页面顶部,然后进行页面转换。

我的过渡容器为 pos:ab。有什么想法为什么会发生这种情况吗?

Dev*_*ves 6

如果其他人也遇到这个问题,这就是我的发现。当节点退出时,只需收集滚动位置并将其锁定到位。

<TransitionGroup>
  <CSSTransition
    key={location.pathname}
    classNames="anim"
    timeout={{ enter: 700, exit: 700 }}
    onExit={node => {
      node.style.position = "fixed";
      node.style.top = -1 * window.scrollY + "px";
    }}
  >
    <TransitionHandler location={location}>
      <div>{children()}</div>
    </TransitionHandler>
  </CSSTransition>
</TransitionGroup>
Run Code Online (Sandbox Code Playgroud)