小编典典

ReactJS 给出错误 Uncaught TypeError: Super expression must be null or a function,not undefined

all

我正在使用 ReactJS。

当我在浏览器下面运行代码时说:

未捕获的类型错误:超级表达式必须为 null 或函数,而不是未定义

任何关于什么是错误的提示都将不胜感激。

首先用于编译代码的行:

browserify -t reactify -t babelify examples/temp.jsx  -o examples/public/app.js

和代码:

var React = require('react');

class HelloMessage extends React.Component {
  render() {
    return <div>Hello </div>;
  }
}

更新:在这个问题上在地狱之火中燃烧了三天后,我发现我没有使用最新版本的反应。

全局安装:

sudo npm install -g react@0.13.2

本地安装:

npm install react@0.13.2

确保浏览器也使用正确的版本:

<script type="text/javascript" src="react-0.13.2.js"></script>

希望这可以挽救别人三天宝贵的生命。


阅读 71

收藏
2022-04-27

共1个答案

小编典典

类名

首先,如果您确定您是从正确命名的类扩展而来,例如 React.Component ,而不是 React.component 或
React.createComponent,您可能需要升级您的 React 版本。有关要扩展的类的更多信息,请参阅下面的答案。

在此之前,使用时:

class HelloMessage extends React.Component

您试图使用 ES6 关键字 ( extends) 从未使用 ES6 定义的类继承classsuper这可能是您在定义等方面遇到奇怪行为的原因。

所以,是的, TL;DR - 更新到 React v0.13.x。

循环依赖

如果您有循环导入结构,也会发生这种情况。一个模块导入另一个模块,反之亦然。在这种情况下,您只需要重构代码以避免它。

2022-04-27