我正在使用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“&燃气轮机</脚本>;
希望这能拯救别人三天宝贵的生命
类名
首先,如果您确定是从正确命名的类(例如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
循环依赖关系
如果您有循环导入结构,也可能会发生这种情况。一个模块导入另一个模块,而另一个模块导入另一个模块。在这种情况下,您只需要重构代码以避免它。更多信息