Je viens juste de commencer à apprendre à réagir et je suis resté bloqué à cette erreur.
Uncaught TypeError: Impossible de lire la propriété 'chemin' d'un indéfini au nouveau routeur
Voici mon code:
var React = require('react');
var ReactDOM = require('react-dom');
var { Route, Router, IndexRoute } = require('react-router');
var hashHistory = require('react-router-redux')
var Main = require('./components/Main');
ReactDOM.render(
<Router history={hashHistory}>
<Route path="/" component={Main}>
</Route>
</Router>,
document.getElementById('app')
);
Le tutoriel que je suivais utilise React-Router 2.0.0, mais sur mon bureau, j'utilise 4.1.1. J'ai essayé de chercher des changements, mais je n'ai pas réussi à trouver une solution qui fonctionne.
"dependencies": {
"express": "^4.15.2",
"react": "^15.5.4",
"react-dom": "^15.5.4",
"react-router": "^4.1.1",
"react-router-dom": "^4.1.1",
"react-router-redux": "^4.0.8"
L'erreur est due au fait que l'api dans React Router v4 est totalement différent .
import React from 'react';
import ReactDOM from 'react-dom';
import {
BrowserRouter as Router,
Route
} from 'react-router-dom';
const Main = () => <h1>Hello world</h1>;
ReactDOM.render(
<Router>
<Route path='/' component={Main} />
</Router>,
document.getElementById('app')
);
Vous pouvez consulter la documentation pour savoir comment cela fonctionne maintenant.
Ici J'ai un dépôt avec une animation de routage.
Et ici vous pouvez trouver une démo en direct.
J'ai eu le message d'erreur ci-dessus et c'était extrêmement cryptique. J'ai essayé les autres solutions mentionnées et cela n'a pas fonctionné.
Il se trouve que j'ai accidentellement oublié d'inclure le prop to
dans l'un des composants <Link />
.
J'aimerais que le message d'erreur soit meilleur. Un simple required prop "to" not found
ou quelque chose comme cela aurait été utile. J'espère que cela sauvera quelqu'un d'autre qui a rencontré le même problème depuis un moment.
J'ai eu la même erreur et je l'ai résolue en en mettant à jour history
de 2.x.x
à 4.x.x
historique d'installation npm @ dernier --save
J'avais une cause différente, mais la même erreur et suis tombé sur cette question à cause de cela. Mettre ceci ici au cas où la même chose se produirait pour les autres et cela pourrait aider . Le problème pour moi était que j'avais mis à jour react-router-4
et que l'accès à pathname
avait changé.
Changement: (React-Router-3 & previous)
this.props.location.pathname
Vers: (React-Router-4)
this.props.history.location.pathname
Assurez-vous simplement que vous ajoutez un accessoire to
à <Link>
sinon vous obtiendrez également la même erreur.