首页 > 解决方案 > react hooks setInterval,为什么第一次可以修改

问题描述

为什么第一次点击后在setinterval中就可以得到正确的count值,然后就不再发生变换了?

import React, { useEffect, useState } from 'react';
const Demo1 = () => {
  let [count, setCount] = useState(1);
  const onCountClick = () => {
    count += 1;
    setCount(count);
  };
  useEffect(() => {
    setInterval(() => {
      console.log(count);
    }, 1000);
  }, []);
  console.log(count);
  return <button onClick={() => onCountClick()}>test</button>;
};

标签: reactjsreact-hooks

解决方案


您正在直接修改状态。而是这样做:

setCount(count++)

推荐阅读