ReactJS如何仅在向下滚动并到达页面上时渲染组件?

2024-01-28

我有一个反应组件Data其中包括几个图表组件;BarChart LineChart ...etc.

When Data组件开始渲染,需要一段时间才能从API接收到每个图表所需的数据,然后开始响应并渲染所有图表组件。

我需要的是开始渲染每个图表only当我向下滚动并到达页面上时。

有什么方法可以帮助我实现这一目标吗?


您至少有三种选择:

  1. 跟踪组件是否在视口中(对用户可见)。然后渲染它。你可以使用这个HOChttps://github.com/roderickhsiao/react-in-viewport https://github.com/roderickhsiao/react-in-viewport

  2. 显式跟踪“y”滚动位置https://react-fns.netlify.com/docs/en/api.html#scroll https://react-fns.netlify.com/docs/en/api.html#scroll

  3. 使用 Intersection Observer API 编写您自己的 HOChttps://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API

要渲染组件,您可能需要另一个 HOC,它将根据它收到的 props 返回 Chart 组件或“null”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ReactJS如何仅在向下滚动并到达页面上时渲染组件? 的相关文章

随机推荐

  • 在 rdlc 文件中隐藏文本框时保留空白

    我创建了一个报告 该报告的左侧有一个图像 该图像根据传入该报告的参数有条件地可见 页面右侧还有另一个文本框 我观察到 当图像的隐藏属性设置为 True 时 右侧的文本框将保留在正确的位置 当图像的 Hidden 属性设置为 IFF 1 1
  • addEventListener 到 AngularJS 中的简单指令示例

    试图得到this http codepen io softwareeveryday pen beBxmp非常基本的指令示例 从一些调查来看 elem 似乎是一个对象HTML标题元素 继承自 Element 不知道为什么elem addEve
  • 如何使用 Oauth 在 django 中更新 Twitter 的状态

    感谢omab 的social auth 项目 我添加了我的网站twitter 登录 效果很好 但我想让经过身份验证的用户在我的网站上分享推文成为可能 我怎样才能做到这个要求呢 任何帮助和想法将不胜感激 我不确定social auth but
  • 如何在 Excel 中将列转置为行

    我有以下 Excel 工作表 A 1 foo 2 bar 3 baz 4 bam 实际上 该列要长得多 使得手动转发不成为一种选择 我怎样才能把这张纸变成 A B C D 1 foo bar baz bam 我尝试过数据透视表功能 但无法获
  • 如何在 Symfony 中延长会话 cookie 的生命周期?

    在服务器端访问会话数据时 modified time被设置 因此将其过期时间延长到未来 然而 这不会发生在PHPSESSID曲奇饼 虽然服务器端的会话数据过期时间得到延长 但 cookie 过期时间却没有延长 如果 cookie 过期 用户
  • 如何在Wordpress中隐藏模板? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 有没有办法在管理中隐藏模板文件 例如 我有一个模板 仅在安装了特定插件后才可用 并且我已经知道如何检查插件是否处于活动状态 但是如何隐藏模板呢 例如
  • 使用 MailKit / MimeKit 从电子邮件中删除附件

    我正在使用 MailKit 库来处理电子邮件 它运行良好 但是 我试图将电子邮件拆分为其组成文件 a 主电子邮件 无附件 b 单个附件文件 以存储在文件系统上 我可以单独保存附件 但似乎无法从电子邮件正文代码中删除它们 IE 它们与主电子邮
  • 使用 Django 通道进行会话身份验证

    尝试使用 Django 通道进行身份验证 使用一个非常简单的 websockets 应用程序 该应用程序回显用户使用前缀发送的任何内容 You said 我的流程 web gunicorn myproject wsgi log file p
  • Log4j 配置和观察无法正常工作

    我在我的应用程序中使用 log4j 进行日志记录 从现在开始 我使用以下代码来配置日志记录 LogManager resetConfiguration InputStream stream Thread currentThread getC
  • Android Studio:尝试呈现 XML 布局时出现 InvalidVirtualFileAccessException

    我正在尝试在我的应用程序中预览 xml 布局 任何 xml 布局 我正在使用 Android Studio 1 5 Preview 2 我一遍又一遍地收到此错误 InvalidVirtualFileAccessException 访问无效的
  • 使用 Excel VBA 运行 SQL 查询

    我对 SQL 和 VBA 相当陌生 我编写了一个 SQL 查询 我希望能够从 Excel 工作簿中的 VBA 子程序调用和运行该查询 然后将查询结果带入工作簿中 我在网上找到了一些潜艇 stackoverflow 和其他地方 声称可以这样做
  • 寻找家谱[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在为我的 Web 应用程序创建具有 HTML5 要求的家谱功能 我已经搜索并找到了一些 JS 示例 但没有找到符合我要求的 我已经尝试
  • 隐藏特定子页面上的 Ionic TabBar (IONIC 3)

    我想在多个特定页面上隐藏我的标签栏 我的主要重点是将其隐藏在我的登录页面 注册页面和评论页面上 我尝试过 tabsHideOnSubPages true 但是当我这样做时我的 UserProfile 页面 这是一个子页面 隐藏选项卡栏 选项
  • 如何在 SSL 下从 PDO 连接 MySQL

    我已经配置了MySQLubuntu 服务器中的 SSL show variables like ssl Variable name Value have openssl YES have ssl YES ssl ca etc mysql c
  • 配置 WEBUTIL 后 Oracle Form 冻结

    我正在使用 Oracle Forms 10g 它是基于 Web 的 Oracle 表单应用程序 我想从 Oracle Forms 10g 生成 Excel 报告 我配置了 WEBUTIL 并使用 CLIENT OLE2 包 在触发器 WHE
  • 查找矩阵中对角线的单词字母

    我有一个5 6的矩阵 所有的值都是英文字母 我必须在矩阵中从左到右 从右到左 从上到下 从上到对角线找到特定的单词 其实这是一个字谜 我能找到 左右 右左 上下 和 下上 这些词 当涉及到对角线查找单词时 事情会变得更加混乱 我提供了从左到
  • Ionic Framework 和 Firebase 3.x 版本:此域未获得对您的 Firebase 项目进行 OAuth 操作的授权

    我正在使用 Ionic Framework 和 Firebase 开发 iOS 应用程序 我已在我的项目中将 Firebase SDK 更新到版本 3 x 我想做的是在真实设备上使用 Facebook 对用户进行身份验证 当我在浏览器上测试
  • JpaRepository删除子元素

    我正在尝试执行一个非常简单的删除操作 但不知何故它不起作用 因为我将 DAO 更新到了 JpaRepository 基本上是这样的 A a aRepository findOne id a setSomeField someNewStrin
  • Google App Engine 为什么某些日志没有显示?

    在 Google App Engine 灵活环境中 许多日志正在跳过 并且没有显示在日志记录控制台中 并且这种情况总是发生 我正在检查它Stackdriver LoggingGoogle Cloud 仪表板上的部分 我使用的日志显示cons
  • ReactJS如何仅在向下滚动并到达页面上时渲染组件?

    我有一个反应组件Data其中包括几个图表组件 BarChart LineChart etc When Data组件开始渲染 需要一段时间才能从API接收到每个图表所需的数据 然后开始响应并渲染所有图表组件 我需要的是开始渲染每个图表only