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

React中如何传递对象数组参数给组件?TypeScript类型错误解决

解决TypeScript组件Props类型不匹配问题

错误原因

你遇到的类型错误,核心问题是TreeSettings组件的Props类型定义错误——它被声明成了menuItems[]数组类型,但你实际传递的是一个包含data属性的对象,两者类型不兼容,所以TS抛出了类型不匹配的报错。

具体修复步骤

  1. 给TreeSettings组件定义正确的Props接口
    在TreeSettings.tsx中,先明确组件接收的Props结构:

    // 定义组件需要的Props类型
    interface TreeSettingsProps {
      data: menuItems[];
    }
    
  2. 修正组件的参数类型
    把组件的参数从数组类型改成上面定义的接口类型,同时解构出data属性:

    const TreeSettings = ({ data }: TreeSettingsProps) => {
      // 后续代码里用data代替原来直接使用的props数组
      return (
        // 你的组件渲染逻辑,比如遍历data数组
        <div>
          {data.map(item => (
            <div key={item.id}>{item.label}</div>
          ))}
        </div>
      );
    };
    
  3. 保持Settings.tsx的传参方式不变
    你原来在Settings.tsx里的传参写法<TreeSettings data={menuItems} />是正确的,现在类型匹配后就不会再报错了。

为什么之前会报错?

之前你把TreeSettings的Props类型设成了menuItems[],相当于TS认为这个组件需要直接接收一个数组作为Props(比如写法是<TreeSettings {...menuItems} />),但你实际传的是带data属性的对象,类型完全不匹配,所以触发了2322类型错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 04:10:35