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

React新手求助:useState计数器点击按钮后显示NaN问题

问题分析与解决办法

嘿,我一眼就揪出问题啦!你碰到的NaN显示问题,根源其实是props拼写错误:

你的CounterHooks组件定义的接收参数是initialCount,但在App.js里渲染组件时,你把这个props写成了intialCount(少了一个字母i)!

这就导致组件里的initialCount值是undefined,useState(undefined)会把count初始化为undefined。当你点击加减按钮时,undefined + 1或者undefined - 1的结果自然就是NaN了。

修正后的App.js代码:

import React from 'react';
import CounterHooks from './CounterHooks'
function App() {
  console.log("Render App")
  return (
    <>
      CounterHooks
      <CounterHooks initialCount={0} /> {/* 这里把intialCount改成initialCount */}
    </>
  )
}
export default App;

额外小优化建议:

你可以给CounterHooks的initialCount设置一个默认值,这样就算后续忘记传props或者再次写错名称,也不会出现NaN的问题:

export default function CounterHooks({initialCount = 0}) {
  const [count , setCount ] = useState(initialCount)
  // ... 其他代码保持不变
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:29:07