Je suis nouveau sur ReactJs. Voici mon code:
var React = require('react');
var ReactDOM = require('react-dom');
var {Route, Router, IndexRoute, hashHistory} = require('react-router');
var Main = require('Main');
ReactDOM.render(
<Router history={hashHistory}>
<Route path="/" component={Main}></Route>
</Router>, document.getElementById('app'));
et en le compilant avec webpack. J'ai également ajouté le composant principal à mes alias. La console renvoie ces erreurs: j'ai également lu ces liens:
React Router a échoué le prop 'historique', n'est pas défini
Comment résoudre l'historique est marqué comme requis, lorsque la valeur n'est pas définie?
Mise à niveau de React-Router et remplacement de hashHistory par browserHistory
et de nombreuses recherches sur le Web, mais je n'ai pas pu résoudre ce problème. React Router est la version 4
la source
<Route...>
instructions dans un<switch>
wrapper au lieu de les encapsuler<div>
. Si vous utilisez<div>
, cela rend les routes inclusives, ce qui signifie que si un chemin peut correspondre à deux routes, les deux composants seront rendus. Voir tous les détails ici: medium.com/@djoepramono/react-router-4-gotchas-2ecd1282de65Quelle version de React Router utilisez-vous? La version 4 du routeur est passée du passage de la classe browserHistory au passage d'une instance de browserHistory, voir l' exemple de code dans la nouvelle documentation .
Cela a attiré de nombreuses personnes qui effectuent une mise à niveau automatique; un document de migration sortira «n'importe quel jour maintenant».
Vous voulez ajouter ceci en haut:
et
la source
customHistory
défini?Si vous souhaitez avoir plusieurs itinéraires, vous pouvez utiliser un commutateur comme celui-ci,
puis
la source
J'ai eu le même problème dans ES6, mais lorsque je suis passé à la bibliothèque «react-router-dom», le problème a été résolu. Pour tous les fans d'ES6, c'est parti:
npm install --save react-router-dom
Dans index.js:
la source
In index.js:
ouIn index.jsx:
?La version 4 de React Router a changé plusieurs choses. Ils ont créé des éléments de routeur de niveau supérieur distincts pour les différents types d'historique. Si vous utilisez la version 4, vous devriez pouvoir remplacer
<Router history={hashHistory}>
par<HashRouter>
ou<BrowserRouter>
.Pour plus de détails, voir https://reacttraining.com/react-router/web/guides
la source
J'écris également une pratique de connexion. Et aussi répondre à la même question comme vous. Après une journée de lutte, j'ai trouvé que cela ne
this.props.history.push('/list/')
pouvait que le faire au lieu de tirer beaucoup de plugins. Au fait, lareact-router-dom
version est^4.2.2
. Merci!la source
Ce qui suit fonctionne pour moi avec "react-router@^3.0.5":
package.json:
index.js:
la source