我是react-router(https://github.com/rackt/react-router)的新手。我这样反应后把它包括在内:
<script src="http://fb.me/react-0.12.2.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/reactrouter/0.13.2/ReactRouter.js"></script>
我收到了一个错误: 未捕获的TypeError:超级表达式必须为null或函数,而不是未定义
我做错了什么?
答案 0 :(得分:115)
虽然这已经解决,但我发布了一个解决方案,因为我遇到了类似的问题。希望它对其他人有所帮助。
我没有使用React Router。我正在使用React和Webpack,Babel作为加载器。我得到了与JustWonder所说的相同的错误。
我正在使用ES6课程。事实证明,我输入了
class App extends React.component {...}
将React.component
更改为React.Component
(大写'C')解决了我的问题。
答案 1 :(得分:7)
我通过将反应版本升级到0.13.3
解决了这个问题npm install react@0.13.3
答案 2 :(得分:1)
我遇到过另一种情况,可能会发生这种情况。
我有v0.13.x
作为直接依赖,我的一个依赖项有v0.12.x
- 因此我的捆绑包中包含两个React副本。这意味着使用ES6类的组件尝试extend
不存在的React.Component
(他们获得了React的v0.12.x
。
我通过查看node_modules
中的反应副本来诊断出这个问题:
npm ls | grep react@
这给了我以下结果:
├── react@0.13.3
│ └── react@0.12.2
-C
的{{1}}选项可让您查看周围的行,因此我重新开始:
grep
周围的文字让我能够识别出违规的包裹。