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

React中如何点击按钮获取值并实现多次追加显示?

解决计算器按钮点击追加显示的问题

当前代码的问题在于,点击按钮时直接用新的按钮值替换了原有显示内容,导致无法实现多次点击追加的效果。只需修改onClick事件中的状态更新逻辑即可解决:

修改核心点

  • 将直接替换number值的逻辑,改为拼接原有内容与新按钮值
  • 推荐使用函数式更新方式,确保获取到最新的状态值,避免异步更新带来的问题

修改后的完整代码

import { useState } from "react";

function App() {
  const [data, setData] = useState({ number: "" });

  return (
    <>
      <h1>Calculator screen: {data.number}!</h1>

      <button
        type="button"
        value="1"
        onClick={(e) => setData(prevData => ({ 
          ...prevData, 
          number: prevData.number + e.target.value 
        }))}
      >
        1
      </button>
    </>
  );
}

export default App;

补充说明

使用setData(prevData => {...})这种函数式更新的原因是:React的状态更新可能是异步的,当更新依赖于之前的状态时,函数式更新能确保我们拿到的是最新的状态快照,避免出现状态不同步的问题。如果只是简单场景,直接用data.number + e.target.value也能工作,但函数式更新更健壮。

内容的提问来源于stack exchange,提问作者Zoltán Fodor

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 23:35:41