当前位置: 首页 > 面试题库 >

如何在反应中滚动到底部?

裴卓君
2023-03-14
问题内容

我想构建一个聊天系统,并在进入窗口和收到新消息时自动滚动到底部。如何在React中自动滚动到容器的底部?


问题答案:

正如Tushar所提到的,您可以在聊天的底部保留一个虚拟div:

render () {
  return (
    <div>
      <div className="MessageContainer" >
        <div className="MessagesList">
          {this.renderMessages()}
        </div>
        <div style={{ float:"left", clear: "both" }}
             ref={(el) => { this.messagesEnd = el; }}>
        </div>
      </div>
    </div>
  );
}

然后在组件更新时滚动到它(即,随着添加新消息而更新状态):

scrollToBottom = () => {
  this.messagesEnd.scrollIntoView({ behavior: "smooth" });
}

componentDidMount() {
  this.scrollToBottom();
}

componentDidUpdate() {
  this.scrollToBottom();
}

我在这里使用标准的Element.scrollIntoView方法。



 类似资料:
  • 如何在android应用程序中使用滑动滚动至底部?我试着用 但上述情况并没有起到任何作用。有人能给我推荐一些通用的解决方案吗?

  • 问题内容: 我正在建立一个带有包含日志消息的文本框的网站。使用AJAX更新日志。 每次更新时,我需要向下滚动文本框。怎么样? 问题答案: 处理Sys.WebForms.PageRequestManager.endRequest事件,并将文本框向下滚动:

  • 问题内容: 我需要将JScrollPane滚动到底部。JScrollPane包含一个JPanel,其中包含许多JLabel。 要滚动到顶部,我只需要: 但是如何精确滚动到最底端?(太远了,它抖动) 问题答案:

  • 问题内容: 我正在使用Ajax请求创建聊天,并且试图使消息div滚动到底部没有太多运气。 我将所有内容包装在这个div中: 有没有一种方法可以使用JS将其默认滚动到底部? 有没有一种方法可以在ajax请求后将其滚动到底部? 问题答案: 这是我在网站上使用的内容:

  • 我一直在为我和一些朋友开发一个小型聊天客户端,同时自学Java和JFX8。不幸的是,由于某些原因,我无法以编程方式滚动到滚动窗格的底部,那里有聊天消息。 我有一个简单地称为scrollToBottom()的方法,它执行以下代码: 下面是应用程序中唯一真正相关的类--ChatBox类型只是VBox的扩展,它只使用扩展类型的文本。 如果您有任何其他一般性建议(我现在正在学习Java),欢迎所有提示。:

  • 问题内容: 以下文章是否仍然是检测UITableView实例何时滚动到底部(在Swift中),还是自那以来已被更改(例如:改进)的公认方法? 谢谢。 问题答案: 试试这个 或者你可以这样找到