javascript - React - 从 Firebase 检索和打印数据
问题描述
我是 React 的初学者,我正在尝试了解事情是如何工作的。我尝试使用 Firebase 数据库进行试验,但我不了解这种行为。
这是 CodeSandBox:https ://codesandbox.io/s/react-and-firebase-d3elg
首先,当您打开页面时,您会在控制台中看到:
First ?undefined
First ?undefined
Second ?undefined
Second ?undefined
undefined 的东西没关系,我稍后再讲,但是为什么会打印两次呢?
然后,如果您取消注释第 24 行,我强烈不推荐 :D,您将开始一个无限循环,非常激进。我原以为它只会触发“一次”,就像它在第 10 行上写的那样,但显然它没有......
有人可以帮我理解吗?
非常感谢。
解决方案
您需要将任何您想运行一次的代码放入一个带有空数组依赖项的 useEffect 中,以使其仅运行一次。
但是在下面我编辑沙箱的示例中,我将dbRef
其作为依赖项放入,因此每当该值更改时,都会再次调用该函数。
https://reactjs.org/docs/hooks-effect.html
https://codesandbox.io/s/react-and-firebase-xir7p?fontsize=14&hidenavigation=1&theme=dark
推荐阅读
- javascript - 尝试使用 puppeteer 抓取网站并取回空对象
- javascript - event.target 的脚本修订
- django - Django:我在哪里可以找到过去 1 年的用户登录、注销活动
- r - 在 R 中强制设置条形图的大小
- php - 如何在PHP中将数组中的所有值相乘
- android - 当我尝试在我的 secondactivity.kt 页面中使用我的 mainactivity 中的布局 ID 时,它返回为 null 并且应用程序崩溃
- python - 获得可重现结果的问题,设置种子 Tensorflow 对象检测 API
- android - Flutter:Streambuilder捕获的异常
- java - 如何在Java中将文件属性从一个文件复制到另一个文件?
- python - 带有 Python 的 Google 表格 API v4。自动调整列大小不起作用