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

React渲染电视剧卡片报Cannot read properties of undefined (reading 'map')错误怎么办

错误原因

你的报错是因为在TvList组件中调用map方法的props.tvshows为undefined,非数组类型没有map方法,所以触发类型错误。
出现该问题常见两个诱因:

  • 父组件传递tvshows时存在异步加载的情况,首次渲染时数据还未完成赋值
  • 组件导入路径错误导致传值链路断裂

修复方案

1. 给TvList增加空值兜底逻辑

直接修改tvList.js代码,确保调用map的对象一定是数组:

import React from "react";
import Tv from "../tvCard/";
import Grid from "@material-ui/core/Grid";

const TvList = (props) => {
  // 兜底为空白数组,避免undefined调用map报错
  let tvCards = (props.tvshows ?? []).map((m) => (
    <Grid key={m.id} item xs={12} sm={6} md={4} lg={3} xl={2}>
      <Tv tv={m} />
    </Grid>
  ));
  return tvCards;
};

export default TvList;

注:你已经在Grid上绑定了key,Tv组件不需要重复绑定相同的key值,可直接去掉。

2. 检查组件导入路径

确认tvCard组件的导入路径是否正确:如果你的tvCard组件文件路径为../tvCard/tvCard.js,那么导入语句需要补全文件名,改为:
import Tv from "../tvCard/tvCard";
如果你的tvCard文件夹下有index.js做了中转导出,保持原有路径即可。

修复完成后,你在index.js中构造的7个重复样本数组会正确传递到组件,所有卡片都会渲染同一份电视剧数据,满足你的测试需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 15:18:00