Javascript React和Firebase useEffect不会更新组件
这是我第一次尝试将React Native(expo)与FireBase一起使用,在异步调用方面有很多困难 现在我尝试通过两次调用FireBase来检索一些数据(我不知道这是否正确) 我的回报是:Javascript React和Firebase useEffect不会更新组件,javascript,reactjs,firebase,react-native,firebase-realtime-database,Javascript,Reactjs,Firebase,React Native,Firebase Realtime Database,这是我第一次尝试将React Native(expo)与FireBase一起使用,在异步调用方面有很多困难 现在我尝试通过两次调用FireBase来检索一些数据(我不知道这是否正确) 我的回报是: {console.log("exercies", exerciesList)} 这是控制台,组件首先在返回中打印控制台日志,但在设置新状态时,不会更新组件: 前进前仅添加了e001元素 我怎样才能解决这个问题?我如何处理对FireBase的呼叫,以便在设置状态之前等待应答 非常
{console.log("exercies", exerciesList)}
这是控制台,组件首先在返回中打印控制台日志,但在设置新状态时,不会更新组件:
前进前仅添加了e001元素
我怎样才能解决这个问题?我如何处理对FireBase的呼叫,以便在设置状态之前等待应答
非常感谢您的帮助,
如果您需要更多信息,我也可以上传整个代码。您代码的最后一行,[])空数组
[]
使useffect钩子只运行一次
据我所知,我看不出您正在使用状态对象,在您使用状态对象时,您可以在末尾调用useffect,如},[state])代码>并且它将在每次状态更改时触发
尝试从钩子中删除[]
,如果检测到更改,它将使react重新呈现组件
线路
return()=>{
isMounted=错误;
};
是一种清理方法,仅在组件被划分/卸载后才会触发,因此useEffect挂钩中的代码永远不会被isMounted=false
其中大部分内容都有很好的文档记录在
希望这有帮助。是的,现在可以了,只是现在它总是进入useEffect方法。并打印无休止的控制台日志
{console.log("exercies", exerciesList)}