2017-03-17 6 views
7

リアクト・ルータはTypeErrorを:_this.props.historyが定義されていない私が反応し、ルータのjsを反応させるとを使用していますが、私は彼らのマニュアルを参照して以下が、それはエラーを示してコンパイル中にこのエラー</p> <p>に直面

TypeError: _this.props.history is undefined 

これは

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') 
); 

を私のindex.jsファイルであり、これは私のApp.jsファイル

です210
+0

どこから電話しましたか? – Shota

+0

私はindex.jsファイルでRouterを使用しました。これはコードから見ることができます。 –

答えて

4

npmを使用していますか?私は "react-router"と同じ問題がありました:私のpackage.jsonの "^ 4.0.0"。それを "react-router"に変更する: "^ 3.0.2"が私の問題を解決しました。

+0

"react-router": "^ 3.0.2"は私のために働きます。しかし4.0.0が動作しない理由を理解していない。 –

+0

私も)最後の作業package.jsonと比較しました。 –

+7

公式のチュートリアルに従っていて、レッスン1がうまくいかないときは、良い兆候ではありません。> – user798719

7

これは、React Routerが4.0.0から変更されたためです。 browserHistoryを使用していたときは、今度はBrowserRouterreact-router-domパッケージから使用してください。コードは次のようになります:

import React from 'react'; 
import ReactDOM from 'react-dom'; 
import App from './App'; 
import './index.css'; 
import { BrowserRouter, Route } from 'react-router-dom'; 

ReactDOM.render(
    <BrowserRouter> 
     <Route path="/" component={ App }/> 
    </BrowserRouter>, document.getElementById('root') 
); 

もちろん、react-router-domをインストールする必要があります。

複数のRoute要素を使用している場合は、in this answerのようにSwitchを使用する必要があります。

-1

以下のソリューションは、ReactDOM.renderに私の作品:

<BrowserRouter> 
    <Switch> 
    <Route path="/home" component={Home} /> 
    <Route path="/user" component={User} /> 
    <Route path="*" component={page404} /> 
    </Switch> 
</BrowserRouter> 

それは、複数のルーティングを使用します。

関連する問題