React 60s倒计时
constructor(props) {
super(props);
this.state = {
tel: 13407163853,
btnText: '获取验证码',
timer: 60,
discodeBtn: false,
clearInterval: false
}
}
...
componentWillReceiveProps(nextProps) {
const { props } = this;
const { openBox } = nextProps;
// console.log('nextProps', nextProps);
// 获取验证码
if (props.openBox.sendBoxMobileCode !== openBox.sendBoxMobileCode) {
const { code, message } = openBox.sendBoxMobileCode;
if (code === '0') {
this.count();
} else {
Toast.info(message);
}
}
}
}
count = () => {
let siv = setInterval(() => { this.setState({ timer: (timer--), btnText: timer, discodeBtn: true }, () => { if (timer === 0) { clearInterval(siv); this.setState({ btnText: '重新发送', discodeBtn: false }) } }); }, 1000);
}
...
render() {
return (
<div>
<input type="button" value={this.state.btnText} disabled={this.state.discodeBtn} onClick={this.sendCode} />
</div>
)}