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

React+TypeScript报错:Cannot read properties of undefined (reading 'map')及导入变灰问题

问题原因及解决方案

1. "Cannot read properties of undefined (reading 'map')" 报错原因

你的组件Products定义了props参数bags,这个参数和你从products.ts导入的变量bags重名了。组件内部会优先使用props传入的bags,但你在使用Products组件时并没有传递这个props,导致props里的bags是undefined,调用map方法自然就报错了。

两种修正方式:

  • 方式一:直接使用导入的全局数据
    删掉组件的props,直接用导入的bags:

    import Link from 'next/link';
    import { bagsTypes } from '../../const/types';
    import bags from '../../const/products';
    
    function Products() {
      return (
        <div>
          {bags.map((bag) => (
            <div key={bag.name}>
              <p>{bag.name}</p>
            </div>
          ))}
        </div>
      );
    }
    
    export default Products;
    
  • 方式二:通过props传递数据
    保留组件的props,但在使用Products组件的地方传入导入的bags:

    // 示例:在父组件中使用Products
    import Products from './page';
    import bags from '../../const/products';
    
    function ParentComponent() {
      return <Products bags={bags} />;
    }
    

2. 导入代码呈灰色的原因

你导入了bags变量,但组件内部实际使用的是props里的bags,IDE会判定这个导入的变量未被使用,所以把代码标灰。按照上面的任意一种方式修正后,导入的变量被正常使用,灰色标记就会消失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 21:03:28