Je suis nouveau à réagir routeur ( https://github.com/rackt/react-router ). Je l'ai inclus après réagis comme ceci:
<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>
J'ai une erreur: Uncaught TypeError: La super expression doit être nulle ou une fonction, pas indéfinie
Qu'ai-je fait de mal?
J'ai sloved le problème en mettant à jour la version de réaction à 0.13.3
npm install [email protected]
Bien que cela ait été résolu, je publie une solution car j'avais un problème similaire. J'espère que cela sera utile à quelqu'un d'autre.
Je n'utilisais pas React Router. J'utilisais React avec Webpack, avec Babel comme chargeur. J'avais la même erreur que celle déclarée par JustWonder.
J'utilisais les classes ES6. Il s'avère que j'avais tapé
class App extends React.component {...}
Changer React.component
en React.Component
('C' majuscule) a résolu le problème pour moi.
J'ai rencontré un autre scénario où cela peut se produire.
J'avais v0.13.x
comme dépendance directe et l'une de mes dépendances avait v0.12.x
- deux copies de React ont donc été incluses dans mon lot. Cela signifiait que les composants utilisant les classes ES6 essayaient de extend
un React.Component
non existant (ils obtenaient le v0.12.x
de React).
J'ai diagnostiqué ce problème en recherchant le nombre d'exemplaires de react dans mon node_modules
:
npm ls | grep react@
Ce qui m'a donné le résultat suivant:
├── [email protected]
│ └── [email protected]
L'option -C
pour grep
vous permet de voir les lignes environnantes, alors j'ai ré-exécuté:
npm ls | grep [email protected] -C 5
Le texte qui l’entoure me permettait d’identifier le colis en cause.