ReactJS给出错误Uncaught TypeError:超级表达式必须为null或函数,而不是未定义的

我正在使用ReactJS

当我运行下面的代码时,浏览器会显示:

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

任何关于错误的提示都将不胜感激

首先是用于编译代码的行:

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

以及守则:

var React=require('React');
类HelloMessage扩展了React.Component{
render(){
return<div>你好</div>;
}
}

更新:
在地狱火中燃烧了三天之后,我发现我没有使用最新版本的react

全局安装:

sudo npm安装[email protected]

本地安装:

npm安装[email protected]

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

<脚本类型="text/javascript“;src=”s;react-0.13.2.js“&燃气轮机&lt/脚本>

希望这能拯救别人三天宝贵的生命

类名

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

升级反应

React自版本0.13.0以来仅支持ES6样式的类(请参阅此处支持介绍的官方博客文章)

在此之前,使用时:

类HelloMessage扩展了React.Component

您试图使用ES6关键字(extends)从未使用ES6class定义的类中创建子类。这可能是您在使用super定义时遇到奇怪行为的原因

因此,是的,TL;DR-更新为React v0.13.x

循环依赖关系

如果您有循环导入结构,也可能会发生这种情况。一个模块导入另一个模块,而另一个模块导入另一个模块。在这种情况下,您只需要重构代码以避免它。更多信息

发表评论