react按钮倒计时效果(发送验证码按钮)

1.今天需要做一个用验证码登陆的功能,所以简单把一个按钮的点击效果分享一下,也是参考了一些资料。先看下效果图

 

6375263-1d9e00b9bf289c46.gif

Video_2019-07-08_212843.gif

 

想实现这个按钮的效果还是挺简单的,首先分析下需要做哪些工作。

1.点击按钮之后按钮变成不可点击状态。
2.点击按钮之后出现倒计时。

不可点击状态用disabled属性,倒计时就用setInterval()方法了,好了,接下来看看代码。
首先是需要设置的几个状态

 state = {
    btnText: '发送验证码',
    btnBool: false,
  }

然后是按钮的代码。这里用了两个状态,一个是控制按钮的文字btnText,一个是控制按钮的点击状态btnBool,

<Button type='primary' onClick={this.SendVerCode.bind(this)} disabled={this.state.btnBool}>{this.state.btnText}</Button>

重点来了。

//发送短信验证码
  SendCode() {
   this.timer = setInterval(() => {
        if (maxTime > 0) {
          --maxTime
          this.setState({
            btnText: '重新获取' + maxTime,
            btnBool: true
          })
        }
        else {
          this.setState({
            btnText: '发送验证码',
            btnBool: false
          })
        }
      }, 1000)
      axios.ajax({
      //这里写后台接口就行了
      }).then(res => {
     //调用接口的回调
      })
}

对了,在此之前还要定义了一个变量,点击按钮之后的倒计时的时间。

let maxTime  = 60

倒计时结束时,按钮会重新变成可以点击状态。希望对你有所参考价值。
Study hard and make progress every day.

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李公子lm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值