切换APP时,回到APP,验证码倒计时不准确

this.state={

  count:90,

  oldTime:0,

  link:true

}

componentDidMount(){

  let that = this

  let hiddenProperty = 'hidden' in document ? 'hidden' :

           'webkitHidden' in document ? 'webkitHidden' :

           'mozHidden' in document ? 'mozHidden' : null

  let visibiltyChangeEvent = hiddenProperty.replace(/hidden/i,'visibiltychange')

  window.addEventListener(visibiltyChangeEvent,function(){

    if(document.visibiltyState == 'hidden'){

    }else if(document.visibiltyState == 'visible'){

      let {oldTime} = that.state

      let newTime = new Date().getTime()/1000

      let timeDiff = Math.round(newTime - oldTime)

      if(link ==false&&timeDiff<90){//正在倒计时

        that.setState({

          count:90 - timeDiff

        })

      }else{//倒计时已结束

        that.setState({

          count:0,

          link:true

        })

      }

    }

  })

}

render(){

  this.setState({

    oldTime:new Date().getTime()/1000

  })

}

posted @ 2022-01-04 16:38  riverslake  阅读(81)  评论(0)    收藏  举报