项目中遇到了点击按钮重复提交的问题,防止重复点击首先是想到的是给点击事件一个定时,下次触发的条件是要距离上一次点击的时间大于N秒的之后才能再执行。
// 防重复点击函数
export const preventRepeatPress = {lastPressTi1me: 0, // 上次点击时间 repoTime: 2000, // 默认间隔时间2000 onPress(callback: () => void, waitTime: number = 2000) {let currTime = Date.now();if (currTime - this.lastPressTime > this.repoTime) {this.lastPressTime = currTime;this.repoTime = waitTime; callback && callback();}},
};
在组件上的点击函数onPress
中使用preventRepeatPress
方法
<Button title="点击按钮" onPress={() => preventRepeatPress.onPress(() => fun())} />
在点击的时候可以传入设置间隔时间进行单独控制
() => preventRepeatPress.onPress(() => onCredit(),5000)
有好的思路欢迎评论交流