【问题标题】:React rerendering overflowed component causes page to jumpReact 重新渲染溢出组件导致页面跳转
【发布时间】:2021-01-27 01:00:09
【问题描述】:

代码为here供参考。

当按钮被按下时,状态改变,#container1 被#container2 替换。页面保持在相同的高度,外部容器保持在相同的高度。但是,在向下滚动页面(访问按钮所必需的)并按下按钮后,页面将向上滚动到中间的某个位置。我希望页面不会移动,因为没有更改布局,只有部分文本。

即使里面的文本溢出,我也需要容器具有固定的高度,并且似乎溢出导致了这个页面跳转错误。

有趣的事实:

  • 如果 #container2 只有 1 个 div 元素,则似乎不会发生错误。
  • 该错误仅在第一次状态从 #container1 更改为 #container2 时发生,但如果您在查看 #container1 时向上滚动任意数量,该错误将在下次状态更改时出现。
  • 大小确实很重要。我可以在“平板电脑”或“桌面”尺寸的编辑器和“切换响应预览”模式中重现该错误。如果我在新标签页中查看该页面,该错误将不会出现。
  • 我使用的是 Chrome,但快速测试表明该错误也出现在 Firefox 和 Edge 上。

【问题讨论】:

    标签: javascript html css reactjs


    【解决方案1】:

    问题就在这里:-

    <div id="container1">

    除非您明确告诉它,否则您的 container1 不会将自己限制在其父级的高度。

    把它改成这样:-

    <div id="container1" style={{ height: "100%" }}>

    【讨论】:

      猜你喜欢
      • 2020-11-16
      • 1970-01-01
      • 2021-02-03
      • 2019-02-07
      • 2022-11-20
      • 2022-01-12
      • 2021-06-19
      • 2018-04-22
      相关资源
      最近更新 更多