为了账号安全,请及时绑定邮箱和手机立即绑定

每次单击都会增加 Firestore 更新值

每次单击都会增加 Firestore 更新值

PIPIONE 2022-06-05 11:15:15
function rateProject(self) {document.getElementsByClassName('modal')[5].style.display="block";var docRef=self.getAttribute("id");var downloadRef = db.collection("projects").doc(docRef);    document.getElementById('rateOneStar').addEventListener('click',e=>{        return downloadRef.update({            oneStar: firebase.firestore.FieldValue.increment(1)        })        .then(function() {            console.log("1 star given");            document.getElementsByClassName('modal')[5].style.display="none";        })        .catch(function(error) {            // The document probably doesn't exist.            console.error("Error updating document: ", error);        });    })}这就是 oneStar 发生的事情:(1 单击:1),(2 单击:3),(3 单击:6)我想要的是:(1 单击:1),(2 单击:2),(3 单击:3)。如果我删除 eventListener 它可以工作。
查看完整描述

1 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

我相信这addEventListener是堆积起来的,每次执行该函数时都会添加一个侦听器。如果您想通过单击 4 次来确认发生这种情况,结果应该是 10。一种可能的解决方案是每次从元素中清除事件侦听器rateOneStar



查看完整回答
反对 回复 2022-06-05
  • 1 回答
  • 0 关注
  • 70 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信