我正在使用reactjs。
当我在浏览器下面运行代码时:
未捕获的TypeError:超级表达式必须为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>;
}
}
更新:在针对此问题的地狱之火中燃烧了三天后,我发现我没有使用最新版本的react。
全局安装:
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>
希望这可以为他人节省三天的宝贵生命。
类名
首先,如果您确定要从正确命名的类扩展,例如 React.Component
,而不是React.component或React.createComponent,则可能需要升级React版本。有关扩展类的更多信息,请参见下面的答案。
升级React
从0.13.0版本开始,React只支持ES6样式的类(请参阅此处有关支持介绍的官方博客文章。
在此之前,使用时:
class HelloMessage extends React.Component
您试图使用ES6关键字(extends
)来继承未使用ES6定义的类class
。这可能是为什么您在super
定义等方面遇到奇怪行为的原因。
因此,是的, TL; DR- 更新到Reactv0.13.x。
循环依赖
如果您具有循环导入结构,也会发生这种情况。一个模块导入另一个模块,反之亦然。在这种情况下,您只需要重构代码来避免它。更多信息
我一直在学习udemy的课程,但无论我做什么,都会出现一个错误: 以下是组件代码: 下面是我要导入的图表组件: 但显然是反应。组件未定义,所以它会抛出一个错误。
从0.13.2更新到0.14.2后,我发现以下错误: 对此已经有几个问题了。最常见的错误是拼错React.component(没有大写字母C)。另一个是尝试使用ES6类的版本 但我已经成功地使用了带有React 0.13.x的ES6类,我在所有地方都使用大写字母C,并且记录React.Component似乎给出了一个合适的结果(函数ReactComponent(…) 经过一些搜索,我做了这3个测试
问题内容: 我使用React编写此演示。我使用Webpack来构建此演示。启动此演示时,错误将显示给我。 错误: 未捕获的TypeError:超级表达式必须为null或函数,且未定义 我不知道该怎么解决。 问题答案: 代码中的唯一警告是由于您没有扩展正确的类,而需要扩展。
我试着检查了其他帖子,上面写着看到了同样的错误信息,但是没有一个符合我的上下文。我是新来的ReactJS,我正在我自己的项目。所以,我创建了两个文件index.html和js/index.js。 “index.html”文件包含以下代码: “js/index.js”文件包含: 我不知道这个代码有什么问题,我得到了错误。
问题内容: 我是React Router的新手(https://github.com/rackt/react- router )。我这样反应后包括了它: 我收到一个错误:未捕获的TypeError:超级表达式必须为null或函数,且未定义 我做错什么了? 问题答案: 我通过将react版本升级到0.13.3解决了这个问题
跟踪这个问题的问题无法解决我的问题。 reactjs给出错误未捕获类型错误:超级表达式必须为空或函数,而不是未定义 我的反应版本是"^15.3.1"。 我添加了下面的代码片段