React 防重复点击方法、原理
原理:在请求数据一旦开始,直到本次请求结束之前,不能进行下一次点击,否则给与相应的提示
state中的初始设置:
state={
bool:true,
}
点击事件设置:
btn_click = async () => {
this.setState({
bool: false,
})
.
.
.
if(this.state.bool){
const value = await fetch.bbb({})
if (value.code == 1) {
} else {
}
this.setState({
bool: true,
})
}
}
解析:
- 满足bool为true的情况,我们执行请求,如果发生多次点击的情况,方法开头设置的bool:false就会生效,防止在请求还没有完成的情况下进行下一次请求;
- 然后在请求完成之后,我们把Bool的状态变更多来,以便此次请求完成还可以进行下一次请求。
- 至于方法开头设置为false,请求还执行,是源于一个异步机制,在同一个方法中设置state又重新调用,state是来不及更新的,但是会在下一次调用该方法的时候执行。