第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

添加新評論重復(fù)呈現(xiàn)的評論

添加新評論重復(fù)呈現(xiàn)的評論

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

1 回答

?
九州編程

TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超4個贊

當(dāng)您在 Firebase 中監(jiān)聽某個值時,每次調(diào)用回調(diào)時,它都會獲取該位置所有數(shù)據(jù)的完整快照。因此,預(yù)計(jì)第二次您會收到新消息 ** 以及已經(jīng)存在的所有消息。


因此,您需要忽略comments狀態(tài)中的當(dāng)前值,并始終僅使用數(shù)據(jù)庫中的信息來填充它:


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()),因?yàn)檫@意味著 Firebase 將繼續(xù)偵聽數(shù)據(jù)庫的更改,并在有人發(fā)布或編輯評論時自動更新評論。


查看完整回答
反對 回復(fù) 2024-01-18
  • 1 回答
  • 0 關(guān)注
  • 190 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號