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

React密码输入按钮点击报错求助(附代码及相关链接)

按钮点击报错的修复方案

问题根源

你这段代码里的按钮点击逻辑有两个明显问题:

  1. onClick 里的参数 cur 是React的合成事件对象,不是你想获取的之前的pressedNumbers状态,直接用...cur展开事件对象肯定会报错。
  2. 更新数组状态的语法错误,没有正确基于旧状态生成新数组。

修复后的按钮代码

<button
  key={idx}
  onClick={() => setPressedNumbers(prevState => [...prevState, number])}
>
  {number}
</button>

关键修正点

  • 用函数式更新:当新状态需要依赖旧状态时,必须给setState传一个函数,函数参数prevState就是当前的pressedNumbers数组,这样能保证拿到最新的状态值。
  • 遵循React状态不可变原则:通过[...prevState, number]创建新数组,把新点击的数字追加到旧数组后面,而不是直接修改原数组。

另外提个小细节:代码里的isCorrrect拼写错了,应该是isCorrect,虽然这不是当前报错的原因,但后续可能影响逻辑判断,建议一起修正。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 23:19:56