React-router error:super表达式必须为null或函数

时间:2015-04-04 22:30:51

标签: reactjs react-router

我是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或函数,而不是未定义

我做错了什么?

3 个答案:

答案 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

周围的文字让我能够识别出违规的包裹。