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

React Native实例化自定义类时报TypeError: undefined不是构造函数求助

问题原因
  • 核心为ES模块的导出导入规则不匹配:你用import { GameTeam } from './objects/Team'的命名导入语法获取类时,实际导入的GameTeam为undefined,调用new关键字时自然触发“undefined不是构造函数”的报错。
    通常由以下两种错误写法导致:
  1. ./objects/Team.js文件中,GameTeam类使用了默认导出(export default GameTeam),和命名导入的语法不匹配
  2. ./objects/Team.js文件完全没有写GameTeam类的导出语句,类没有对外暴露
  • 小概率为路径拼写错误:React Native打包环境对文件路径大小写、拼写敏感度较高,路径不匹配也会导致导入内容为undefined
解决方案

按照你的开发习惯二选一即可:

方案1:保留当前主文件的命名导入写法

在./objects/Team.js中给GameTeam类加上命名导出:

// 直接在类定义前加export
export class GameTeam {
    constructor(name, logoLocation)
    {
        this.name = name;
        this.logoLocation = logoLocation;
    };

    getTeamName() {
        return this.name;
    }

    getTeamLogoLocation() {
        return this.logoLocation
    }
}

// 也可以在类定义后单独加导出语句
// export { GameTeam }

方案2:保留Team.js的默认导出写法

如果你的GameTeam类用的是默认导出,把主文件的导入语句去掉大括号即可:

// 原导入语句为 import { GameTeam } from './objects/Team',修改为
import GameTeam from './objects/Team'

额外排查点

  • 核对./objects/Team.js的相对路径是否正确,检查文件名、文件夹名的大小写是否和导入语句完全一致
  • 该问题和变量声明关键字无关,不需要将const改为var

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 17:45:05