首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用useState,useEffect显示电流时间

使用useState,useEffect显示电流时间
EN

Code Review用户
提问于 2021-10-07 09:40:29
回答 1查看 1.2K关注 0票数 0

我正在学习钩子,所以我尝试编写显示当前时间的代码。

我在每一行代码中都有注释,这是我写它的原因。所以:

  1. 我明白了吗?
  2. 有什么不好的做法吗?
  3. 还有什么需要改进的?
代码语言:javascript
复制
import * as React from 'react'

function App() {
  // Define a state for keeping track of time
  const [time, setTime] = React.useState("");

  // Logic, computation to update time (which is side-effect) should put inside useEffect
  React.useEffect(() => {
    // Running side-effect when component mounted (componentDidMount)
    const myInterval = setInterval(() => {
      setTime(new Date().toLocaleTimeString());
    }, 1000);

    // Clear side-effect when component unmount (componentWillUnmount)
    return () => {
      clearInterval(myInterval);
    }
  })

  return (
    <div className="App">
      <h1>{time}</h1>
    </div>
  );
}

export default App;
EN

回答 1

Code Review用户

回答已采纳

发布于 2021-10-07 09:49:12

默认情况下,useEffect将在每个呈现上运行。因为您在useEffect中设置状态,所以状态将在每个呈现上呈现,从而导致不必要的呈现循环。

要解决这个问题,请将一个空依赖数组传递给useEffect

代码语言:javascript
复制
React.useEffect(() => {
  // ...
}, [])
票数 3
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/268753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档