Reagieren-router TypeError: _diese.Requisiten.die Geschichte ist nicht definiert
Ich bin mit reagieren-router mit reagieren js und ich nach Ihrer Dokumentation aber vor diesem Fehler
beim kompilieren zeigt es den Fehler,
TypeError: _this.props.history is undefined
dies ist mein index.js Datei
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import './index.css';
import { Router, Route, browserHistory, IndexRoute } from 'react-router';
ReactDOM.render(
<Router history={browserHistory}>
<Route path="/" component={App}>
</Route>
</Router>
,
document.getElementById('root')
);
- und das ist meine App.js Datei
import React, { Component } from 'react';
import './App.css';
class App extends Component {
constructor(props){
super(props);
this.state = {
headerText: "Props from Header.",
contentText: "Props from content."
};
}
render() {
return (
<div className="App">
<ul>
<li><a href="">Home</a></li>
<li><a href="">Home</a></li>
<li><a href="">Home</a></li>
</ul>
</div>
);
}
}
export default App;
- Von wo aus hast du es nennen?
- Ich Verwendete Router in index.js Datei, und Sie können sehen, aus dem code.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist, weil die Dinge verändert, Reagieren die Router ab 4.0.0. Sollten Sie nun verwenden
BrowserRouter
ausreact-router-dom
- Paket, wenn Sie wurden mitbrowserHistory
. Also dein code sieht wie folgt aus:Natürlich, müssen Sie die Installation
react-router-dom
ersten.Beachten Sie auch, dass, wenn Sie mit mehr als einem
Route
element, müssen Sie eineSwitch
wie erklärt in dieser Antwort.Sind Sie mit npm? Ich hatte das gleiche problem mit "reagieren-router": "^4.0.0" in meinem Paket.json. Ändern Sie ihn auf "reagieren-router": "^3.0.2" mein problem gelöst.
Den unten Lösung funktioniert bei mir in ReactDOM.render:
Es mehrere Routing.
Es scheint mir, dass diese.Requisiten.die Geschichte ist nicht definiert, da Sie nicht durch die routeProps zu der Komponente, die Sie Rendern möchten.
Ändern Ihre Routen wie folgt:
Du kannst auch andere Requisiten, die auf das gerenderte Komponenten mit dieser Methode.
Ich auf dieses problem, wenn zu instanziieren versucht, meinen eigenen Router lieber als die eingebauten, sich mit ein Problem ist der Zugang zu der Geschichte:
history.js
root.jsx
In meinem Fall, das Problem war, dass ich hatte eine version des
history
Paket gesperrt-v2.1.2, währendreact-router
wurde je ein v4.x-version vonhistory
im eigenen Abhängigkeiten. Also das built-in-Router instanziiert gut mit den neuerenhistory
, aber wenn ich versuchte, es selbst zu tun, ich zog in die älterehistory
und immer ein inkompatibles Objekt.