为了账号安全,请及时绑定邮箱和手机立即绑定

React:如何每10秒执行一个方法?

React:如何每10秒执行一个方法?

小怪兽爱吃肉 2023-10-14 11:15:34
例如,我想每 10 秒运行一次我的方法“getNumber”,我该怎么做?class App extends Component {    constructor(){        super();        this.state={          web3: '',        }        this.getNumber = this.getNumbert.bind(this);              }getNumber(){       let number = 0;       number = number + 1;      }
查看完整描述

2 回答

?
达令说

TA贡献1821条经验 获得超6个赞

一些忠告:

  • 使用原生 JS 函数setInterval()每 x 毫秒运行给定函数

  • 如果您想在每次更改时触发重新渲染,则需要将数字存储在状态中。

工作示例:

import React, { Component } from "react";


class App extends Component {

  constructor() {

    super();

    this.state = {

      web3: "",

      number: 0

    };

    this.getNumber = this.getNumber.bind(this);

  }


  componentDidMount() {

    setInterval(this.getNumber, 10000);

  }


  getNumber() {

    this.setState({ number: this.state.number + 1 });

  }


  render() {

    return (

      <>

        <div>Number: {this.state.number}</div>

        <span>👆This will update every 10 seconds</span>

      </>

    );

  }

}


export default App;

现场演示


查看完整回答
反对 回复 2023-10-14
?
德玛西亚99

TA贡献1770条经验 获得超3个赞

在里面componentDidMount你可以启动一个setInterval- 它需要 2 个参数,一个要调用的方法,以及它在再次运行之前等待的时间(以毫秒为单位)。

https://reactjs.org/docs/react-component.html#componentdidmount

https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setInterval

componentDidMount() {

  setInterval(() => {

    let number = 0;

    number = number + 1;

  }, 10000)

}

尽管目前number每 10 秒会设置回 0。您需要使用保存为状态的数字。


查看完整回答
反对 回复 2023-10-14
  • 2 回答
  • 0 关注
  • 80 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信