繁体   English   中英

使用 React Hooks 限制 Firebase 次重新渲染

[英]Limit Firebase rerenders with React Hooks

我有一个 Firebase 实时数据库,我想通过映射列表来显示记录。

到目前为止我有:

useEffect(() => {
        dbRefObject.on('value', snap => getRecords(snap.val()))
      }, [dbRefObject, records])

在其他地方我有:

export const dbRefObject = firebase.database().ref().child('record');

我的 getRecords() function 是:

const getRecords = (snap) => {
        let _recordsMap= []
        for (let record in snap) {
            _recordsMap.push({[record] : snap[record]})
        }

我想要某种行为,例如 useEffect 返回的 unsubscribe() function,但我无法让它工作?

useEffect(() => {
        const unsubscribe = () => {dbRefObject.on('value', snap => getRecords(snap.val()))}
        return () => {
            unsubscribe()
        }
      }, [dbRefObject, records])

你需要调用 dbRefObject.off("value", originalCallback);

检查https://firebase.google.com/docs/database/admin/retrieve-data#section-detaching-callbacks

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM