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

将useState更新器作为Props传递给子组件时提示‘不是函数’错误求助

解决"Uncaught TypeError: setStep is not a function"错误

问题出在子组件的参数接收方式上:

  • React函数组件的参数是单个props对象,而非独立的多个参数。你当前把step和setStep作为两个分开的参数传入,实际上第一个参数是包含所有传入属性的对象,第二个参数会是undefined,调用setStep自然会触发"不是函数"的错误。

修正后的子组件代码:

const StepZero = ({ step, setStep }: { step: number; setStep: (value: number) => void }) => {
  const handleIncrement = () => {
    setStep(step + 1);
  };

  return (
    // ... 你的其他JSX内容
    <div onClick={handleIncrement}>SELECT & CONTINUE</div>
  );
};

说明:

  1. 使用对象解构从props对象中提取step和setStep属性,这样就能正确获取父组件传递的状态和更新函数。
  2. 替换模糊的any类型,明确setStep的类型为(value: number) => void,让TypeScript提供更准确的类型检查。

父组件的代码没有问题,只需修改子组件的参数处理逻辑即可解决报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 18:20:48