【发布时间】:2019-09-22 05:47:54
【问题描述】:
我有这个功能可以在帖子中添加拍手。我不想每次拍手都拍手,因为这在我的 mysql 服务器上会很疯狂,更不用说 http 请求和重新渲染了。相反,我想让鼓掌加起来一点,只有当用户停止添加鼓掌几秒钟,然后将鼓掌添加到数据库中。所以我的函数将拍手正确地存储在状态中,但它每次都在运行该函数并且从不清除超时。
let sendClapsToDB
_clapForPost = (postId) => {
clearTimeout(sendClapsToDB)
setClaps(() => claps + 1)
sendClapsToDB = setTimeout(() => {
_addClapsToPost(claps, postID)
}, 5000)
}
有谁知道如何正确执行此操作。我正在使用 React Native 并获取。每次用户按下按钮时都会调用 _clapForPost 函数。
【问题讨论】:
-
一个好的做法是将var是容器重置为null,此方法将推送到垃圾收集器sendClapsToDB
-
@ÁlvaroTouzón - 感谢您的尝试 - 但没有奏效。
-
尝试使用
var而不是let。您示例中的变量sendClapsToDB位于两个不同的范围内。也许不是最好的解决方案,但应该可行! -
@FrancescoSimeoli - 试过了 - 没用
标签: javascript react-native settimeout cleartimeout