You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React实现点击按钮更新计数器:setCount无法更新值求助

React useState计数器更新问题解决方法

你直接修改count变量(count=count+1)的方式是错误的,React的useState状态是不可变的,必须通过setCount函数来更新状态,否则不会触发组件重新渲染,还可能导致状态异常。

两种正确的更新方式:

  1. 直接传入新状态值:适用于状态更新不依赖之前状态的场景
function add() {
  setCount(count + 1);
}
  1. 函数式更新:当状态更新依赖于上一次的状态时,推荐用这种方式,避免异步更新导致的状态滞后问题
function add() {
  setCount(prevCount => prevCount + 1);
}

完整修正后的代码:

import React, { useState } from "react";

function App() {
  const [count, setCount] = useState(0);

  function add() {
    // 函数式更新更可靠,尤其在连续点击等场景下
    setCount(prevCount => prevCount + 1);
  }

  return (
    <div>
      <h1>{count}</h1>
      <button onClick={add}>+</button>
    </div>
  );
}

export default App;

关键说明:

  • useState返回的状态变量是只读的,不能直接赋值修改
  • 只有调用setCount并传入新的状态值,React才会重新渲染组件,更新UI显示
  • 函数式更新通过接收上一次的状态值来计算新状态,能确保每次更新都基于最新的状态

内容的提问来源于stack exchange,提问作者ant1991

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 14:32:18