繁体   English   中英

停止并在ComponentDidMount中启动setInterval

[英]Stop and start a setInterval in a ComponentDidMount

我目前正在制作一个React应用程序,该应用程序每秒从API提取数据以进行自我更新。 然后,我将显示包含这些数据的表,该表每秒刷新一次。

我当前的问题是,我必须允许用户单击td,从而停止计时器,允许他进行编辑。 完成后,再次启动计时器。

我可以停止它,但停止后不知道如何重新启动它。 这是我的代码:

class App extends Component {
  state = {
    data: [],
  }

  componentDidMount() {
    this.timer = setInterval(() => (axios.get("http://127.0.0.1:8000?count=20")
      .then(data => this.setState({ data: data.data }))
      .catch(error => console.log(error))), 1000)
  }

  stopTimer = () => {
    console.log("stoooop")
    clearInterval(this.timer)
  }

  launchTimer = () => {
    ???
  }
class App extends Component {
  state = {
    data: [],
  }

  componentDidMount() {
    this.timer = this.launchTimer();
  }

  stopTimer = () => {
    console.log("stoooop");
    clearInterval(this.timer);
  };

  launchTimer = () => {
    this.timer = setInterval(() => (axios.get("http://127.0.0.1:8000?count=20")
      .then(data => this.setState({ data: data.data }))
      .catch(error => console.log(error))), 1000);
  };
class App extends Component {
    state = {
       data: [],
}

componentDidMount() {
    this.timer = launchTimer();
}

stopTimer = () => {
   console.log("stoooop")
   clearInterval(this.timer)
}

launchTimer = () => {
    setInterval(() => (axios.get("http://127.0.0.1:8000?count=20")
      .then(data => this.setState({ data: data.data }))
      .catch(error => console.log(error))), 1000)
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM