验证码倒计时,用的setInterval, 离开当前组件好像还在计时,导致一直在warning



  • 不知道你们怎么做的验证码,我的代码是这样的

    //获取验证码
        get_validate_code = () => {
            if (this.state.mobile == '') {Alert.alert('请输入手机号'); return false}
    
            this.setState({
                validating: true
            })
    
            //这里要调发送短信的api了
            //todo...
            //
            let timer = setInterval(() => {
                if (this.state.validate_time_limit == 0) {
                    this.setState({
                        validate_time_limit: 30,
                        validating: false
                    });
                    clearInterval(timer)
                } else {
                    this.setState({
                        validate_time_limit: this.state.validate_time_limit - 1
                    })
                }
                
            }, 1000)
        }
    

    然后在计时的时候,返回上一个页面,函数还在继续执行
    求助



  • ComponentUnMount 時要clear掉喔



  • @小霖 多谢,解决了


Log in to reply