14

我是 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>

我收到一个错误:Uncaught TypeError: Super expression must be null or a function, not undefined

我做错什么了?

4

3 回答 3

114

虽然这已经解决了,但我发布了一个解决方案,因为我遇到了类似的问题。希望它对其他人有帮助。

我没有使用 React Router。我将 React 与 Webpack 一起使用,并使用 Babel 作为加载器。我遇到了与 JustWonder 所述相同的错误。

我正在使用 ES6 类。原来,我输入了

class App extends React.component {...}

更改React.componentReact.Component(大写“C”)为我解决了这个问题。

于 2015-04-11T21:41:31.077 回答
7

我通过将反应版本升级到 0.13.3 解决了这个问题

npm install react@0.13.3
于 2015-05-19T12:33:32.887 回答
1

我遇到了另一种可能发生这种情况的情况。

我有v0.13.x一个直接依赖项,我的一个依赖项有v0.12.x- 所以我的包中包含了两个 React 副本。这意味着使用 ES6 类的组件试图extend不存在React.Component(他们得到了v0.12.xReact)。

我通过查看我的 react 中有多少副本来诊断这个问题node_modules

npm ls | grep react@

这给了我以下结果:

├── react@0.13.3
│ └── react@0.12.2

-C选项允许您查看周围的grep线条,所以我重新运行:

npm ls | grep react@0.12.2 -C 5

周围的文字使我能够识别出有问题的包裹。

于 2015-11-03T19:01:55.763 回答