Ответ 1
Я задал вопрос, обновив версию реакции до 0,13.3
npm install [email protected]
Я новичок в реакции-маршрутизаторе (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 должно быть нулевым или функцией, а не undefined
Что я сделал не так?
Я задал вопрос, обновив версию реакции до 0,13.3
npm install [email protected]
Хотя это было решено, я отправляю решение, так как у меня была аналогичная проблема. Надеюсь, это будет полезно кому-то другому.
Я не использовал React Router. Я использовал React с Webpack, с Babel в качестве загрузчика. Я получал ту же ошибку, что и JustWonder.
Я использовал классы ES6. Оказывается, я набрал
class App extends React.component {...}
Изменение React.component
на React.component
(верхний регистр C) решило проблему для меня.
Я столкнулся с другим сценарием, где это может произойти.
У меня была v0.13.x
как прямая зависимость, и одна из моих зависимостей имела v0.12.x
- поэтому в мой пакет были включены две копии React. Это означало, что компоненты, использующие классы ES6, пытались extend
несуществующие React.Component
(они получали v0.12.x
of React).
Я поставил диагноз этой проблемы, посмотрев, сколько копий ответов было в моем node_modules
:
npm ls | grep [email protected]
Что дало мне следующий результат:
├── [email protected]
│ └── [email protected]
Параметр -C
для grep
позволяет вам видеть окружающие линии, поэтому я снова запустил:
npm ls | grep [email protected] -C 5
Окружающий текст позволил мне определить оскорбительный пакет.