如何清除以这种特定方式设置的间隔

时间:2018-07-12 19:31:03

标签: javascript reactjs

我正在工作。我想清除我在componentWillUnmount上的时间间隔

时间间隔设置为此

setInterval( () => this.baz(), 1000 );

在此{@ 3}之后关注此答案

我该如何清除。很抱歉,这是一个基本问题

2 个答案:

答案 0 :(得分:4)

保存对组件(this.intervalID上的intervalID的引用,并在componentWillUnmount中清除它:

class Demo extends React.Component {
  componentDidMount() {
    this.intervalID = setInterval( () => this.baz(), 1000 );
  }

  componentWillUnmount() {
    clearInterval(this.intervalID);
  }

  render() {
    //...
  }
}

答案 1 :(得分:2)

setInterval在调用时返回一个ID。您只需要保存该内容并将其传递给clearInterval()。您可以轻松地将其保存为您的状态:

this.setState({ intervalId: setInterval(() => this.baz(), 1000) });

然后在componentWillUnmount()中输入:

clearInterval(this.state.intervalId);