2017-04-20 12 views
1

反応ルータをインストールしましたが、メインページを表示しようとしています。Reactは反応ルータをインストールしましたが、レンダリングするページを取得できません

これは、現在のindex.js

import React, { Component, PropTypes } from 'react'; 
import { Router, Route } from 'react-router'; 

import Layout from './components/Layout'; 
import NewsComponent from './components/NewsComponent'; 

<Router> 
    <div> 
    <Route exact path="/" component={Layout} /> 
    <Route path="/news" component={NewsComponent} /> 
    </div> 
</Router> 

const app = document.getElementById('app') 

ReactDOM.render(
    <Router history={hashHistory}> 
    <Route path="/" component={Layout} /> 
    </Router>, app); 

レイアウトコンポーネントは、ページのレイアウトが含まれています。

私は行方不明ですか?

私はこれを間違っていますか?

+0

あなたはimport'の文 ''からhashHistory'が欠落している可能性があり、それが正常にロードしないページを引き起こしています。私はあなたがこの例のために省略したか、本当にそれを逃しているのか分かりません(ReactDOMと同じです) –

答えて

1

あなたが紛失している参考文献がいくつかありますが、この例のように省略した場合、または実際にそれらを紛失している場合はわかりません。

import React from 'react'; 
import ReactDOM from 'react-dom'; //Missing in your example 
import { 
    Router, 
    Route, 
    browserHistory //Missing in your example 
    } from 'react-router'; 
import Layout from './components/Layout'; 

ReactDOM.render(
    <Router history={browserHistory}> 
    <Route path="/" component={Layout} /> 
    </Router>, 
    document.getElementById('root') 
) 

次に、あなたのコンポーネントで、あなたも歴史をナビゲートすることができます:この試してみてください、あなたのコードを変更するだけでなく

import { hashHistory } from 'react-router' 

//Dont forget to bind this in the constructor 
yourMethod (someParams) { 
    hashHistory.push(someUrl) 
} 
+0

hashHistoryでエラーが発生しました - TypeError:_this.props.historyは未定義です – JakeBrown777

+0

'hashHistory'を'ブラウザ履歴。私が提案したコードを試しましたか、コードでそのエラーを受け取りましたか?また、 'Layout'コンポーネントを分かち合う気にしないと...そこに何か間違っていると思われます。あなたが' this.props.history'を使っていくつかのメソッドをバインドしていないと聞こえます。 –

+0

@ JakeBrown777 didあなたは私が言ったことを見てみる機会がありますか?お知らせ下さい。ありがとう –

0

明示的にReactDOMをインポートしてください( 'ReactionDOM'からReactDOMをインポートしてください)。 Reactをインポートすると自動的には含まれません。

1

を[欠落している輸入品など]、あなたは、特に言及したいと思います使用している反応ルータのバージョンです。

NPM削除反応し、ルータ

その後:

NPMインストール--save [email protected]

リアクト-ルータあなたはNPM

てみてくださいを使用していると仮定すると、デフォルトでインストールされるV4は、リアルーターの完全な再構成であり、以前のバージョンのリアルーターで作成されたコードと互換性がありません。


しばらくしてReactを使用していない場合は、create-react-appを使用することをおすすめします。そこから起動すると、非常に簡単になります。

https://github.com/facebookincubator/create-react-app

関連する問題