我正在使用事件侦听器检查实时数据库的更改。
const [chats, setChats] = useState({});
const ref = db.ref(`users/${sender}/chat/`);
ref.on('value', (snapshot) => {
const data = snapshot.val();
setChats(data);
});
我总是收到太多的重新渲染。Firebase文档说它只应该在子对象发生变化时更新。我做错了什么吗?有解决方法吗?
1条答案
按热度按时间mqkwyuun1#
问题很可能是您问题中的代码在每次渲染时运行,更改状态,从而重新渲染。Ala无限循环
尝试使用
useEffect
hook。在清理中删除侦听器的加分使用V9SDK看起来有些不同。