Javascript React-从Firebase检索和打印数据

Javascript React-从Firebase检索和打印数据,javascript,reactjs,firebase,loops,infinite,Javascript,Reactjs,Firebase,Loops,Infinite,我是React的初学者,我正在努力了解事物是如何运作的。。我尝试使用Firebase数据库进行实验,但我不了解其行为 下面是代码沙盒: 首先,当您打开页面时,您将在控制台中看到: First ?undefined First ?undefined Second ?undefined Second ?undefined 未定义的东西是可以的,我稍后会再讨论这个,但是为什么要打印两次呢 然后,如果您取消注释第24行,,我强烈不建议这样做:D,您将启动一个无限循环,非常激进。我原以为它只会像

我是React的初学者,我正在努力了解事物是如何运作的。。我尝试使用Firebase数据库进行实验,但我不了解其行为

下面是代码沙盒:

首先,当您打开页面时,您将在控制台中看到:

First ?undefined 
First ?undefined 
Second ?undefined 
Second ?undefined 
未定义的东西是可以的,我稍后会再讨论这个,但是为什么要打印两次呢

然后,如果您取消注释第24行,,我强烈不建议这样做:D,您将启动一个无限循环,非常激进。我原以为它只会像第10行写的那样“发射一次”,但显然没有

有人能帮我理解吗


非常感谢。

您需要将任何希望运行一次的代码放入带有空数组依赖项的useEffect中,使其只运行一次

但在下面的示例中,我编辑了您的沙盒,我将
dbRef
作为一个依赖项,因此每当该值更改时,就会再次调用该函数


哦,真有趣!我可以在我的应用程序中尝试。我被内存泄漏搞得头晕目眩,我很震惊这是相关的!见: