javascript - 每秒更新一次 React 组件

标签 javascript reactjs

我一直在玩 React 并有以下时间组件,它只将 Date.now() 呈现到屏幕上:

import React, { Component } from 'react';

class TimeComponent extends Component {
  constructor(props){
    super(props);
    this.state = { time: Date.now() };
  }
  render(){
    return(
      <div> { this.state.time } </div>
    );
  }
  componentDidMount() {
    console.log("TimeComponent Mounted...")
  }
}

export default TimeComponent;

让这个组件每秒更新一次以从 React 的 Angular 重新绘制时间的最佳方法是什么?

最佳答案

你需要使用setInterval来触发变化,但是你也需要在组件卸载时清除定时器,以防止它留下错误和内存泄漏:

componentDidMount() {
  this.interval = setInterval(() => this.setState({ time: Date.now() }), 1000);
}
componentWillUnmount() {
  clearInterval(this.interval);
}

关于javascript - 每秒更新一次 React 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39426083/

相关文章:

javascript - NextJS - 在一页上进行多次获取的动态路由

reactjs - Material UI - 避免 Typography 组件之间的换行

reactjs - 如何使用 nextjs 将 React 应用程序成功部署到 AWS Amplify?

javascript/jquery - 倒计时器

javascript - 检查客户端是否有 socket.io id 仍然连接

java - 我在数据表中的 javascript 工作得不好

javascript - 指定 HTML5 输入类型 = 日期的值输出?

javascript - React 状态未在应用程序中更新,但我可以 console.log 更正更新后的状态

javascript - 未捕获的类型错误 : Cannot read property '_props' of undefined

javascript - 如何将谷歌 Material 折线图的轴起点设置为0