首页 > 解决方案 > React Native 在 Button 上设置了“冷却时间”

问题描述

我的问题是是否可以在用户按下的按钮上设置冷却时间,或者仅在 2 秒内注册 1 次按下。我正在使用与 REST API 和 PostgreSQL 数据库连接的 React Native (Expo)。

我的问题是我有一个将数据发送到数据库的按钮。OnPress 输入的值被 PUT 到数据库中,用户被导航到另一个屏幕,在那里他可以看到他的条目。

我注意到当用户足够快时,他可以按下按钮两次或 3 次,因此数据也会 2/3 次发布到数据库。

我需要一秒钟的冷却时间,所以数据只发布 1 次,因为导航几乎是立即发生的!

我在互联网上找不到任何关于此的内容。

谢谢~褪色

标签: javascriptreactjsreact-nativebuttontextinput

解决方案


目前我能想到的解决方案有两种,可能还有很多其他的解决方案。

解决方案1: 如果数据库调用已经完成,则有一些变量可以保留一个值,一旦您从数据库获得响应,您可以重置该变量并且用户可以再次按下该按钮。

就像是

onPress = {this.state.isPressed ? null : <this.writeTodatabase>}

writeTodatabase = () => {
    this.setState({ isPressed:true })
    // code to write to database
    // once you have response from database you can set isPressed to false.
}

如果该变量为真,您也可以禁用按钮。

解决方案 2:您可以throttlelodash库中使用。

参考文件


推荐阅读