react-router错误:超级表达式必须为空或函数

IT技术 reactjs react-router
2021-05-14 07:25:32

我是 react-router ( https://github.com/rackt/react-router ) 的新手我在这样的react后包括它:

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

我收到一个错误:未捕获的类型错误:超级表达式必须为空或函数,而不是未定义

我做错了什么?

3个回答

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

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

我正在使用 ES6 类。原来,我已经打字了

class App extends React.component {...}

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

我通过将react版本升级到 0.13.3 来解决这个问题

npm install react@0.13.3

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

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

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