diff --git a/src/components/CountDown/index.js b/src/components/CountDown/index.js index f7caec22dc6d30a7d5372263d87bcbdf73f7ab77..e1e85bc225ffd4a87cda94ec5a18f975dc494058 100644 --- a/src/components/CountDown/index.js +++ b/src/components/CountDown/index.js @@ -21,9 +21,12 @@ class CountDown extends Component { componentWillReceiveProps(nextProps) { if (this.props.target !== nextProps.target) { + clearTimeout(this.timer); const { lastTime } = this.initTime(nextProps); this.setState({ lastTime, + }, () => { + this.tick(); }); } } @@ -76,18 +79,18 @@ class CountDown extends Component { clearTimeout(this.timer); this.setState({ lastTime: 0, + }, () => { + if (onEnd) { + onEnd(); + } }); - - if (onEnd) { - onEnd(); - } } else { lastTime -= this.interval; this.setState({ lastTime, + }, () => { + this.tick(); }); - - this.tick(); } }, this.interval); }