相关疑难解决方法(0)

反应 setInterval 行为

let updateTimer: number;

export function Timer() {
  const [count, setCount] = React.useState<number>(0);
  const [messages, setMessages] = React.useState<string[]>([]);

  const start = () => {
    updateTimer = setInterval(() => {
      const m = [...messages];
      m.push("called");
      setMessages(m);
      setCount(count + 1);
    }, 1000);
  };

  const stop = () => {
    clearInterval(updateTimer);
  };

  return (
    <>
      <div>{count}</div>
      <button onClick={start}>Start</button>
      <button onClick={stop}>Stop</button>
      {messages.map((message, i) => (
        <p key={i}>{message}</p>
      ))}
    </>
  );
}
Run Code Online (Sandbox Code Playgroud)

代码示例:https : //codesandbox.io/s/romantic-wing-9yxw8?file=/ src/ App.tsx


该代码有两个按钮 - 开始和停止。

  • 开始调用 asetInterval并保存间隔 ID。定时器设置为 …

javascript setinterval ecmascript-6 reactjs

4
推荐指数
1
解决办法
134
查看次数

标签 统计

ecmascript-6 ×1

javascript ×1

reactjs ×1

setinterval ×1