亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

添加新評論重復呈現的評論

添加新評論重復呈現的評論

慕妹3242003 2024-01-18 17:00:41
所以,我正在嘗試使用 firebase 來創建 React 的評論部分。數據庫結構如下:基本上發生的事情是: 它只是再次加載已經加載的評論!我試圖在調用retrieveComments/useEffect/handleSubmit時清空評論狀態,但沒有成功,我不知道發生了什么:(
查看完整描述

1 回答

?
九州編程

TA貢獻1785條經驗 獲得超4個贊

當您在 Firebase 中監聽某個值時,每次調用回調時,它都會獲取該位置所有數據的完整快照。因此,預計第二次您會收到新消息 ** 以及已經存在的所有消息。


因此,您需要忽略comments狀態中的當前值,并始終僅使用數據庫中的信息來填充它:


function retrieveComments(){

    if(props.location.project){

        var comments = firebase.database().ref('/projects/'+props.location.project.uid + '/' + props.location.project.pid+'/comments');

        comments.once('value', (snapshot)=>{

            let msgs = [];

            snapshot.forEach((snap)=>{

                msgs.push(snap.val());

            })

            setComments(comments => msgs);

        })

    }

}

順便說一句:我建議使用on()(而不是once()),因為這意味著 Firebase 將繼續偵聽數據庫的更改,并在有人發布或編輯評論時自動更新評論。


查看完整回答
反對 回復 2024-01-18
  • 1 回答
  • 0 關注
  • 151 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號