2016-01-19 12 views
8

私はリアサイズのJSテストアプリケーションをES6のリアクションルータで実装しましたが、動作していないようです。コードスニペット以下I:に移動リアクタのナビゲーションが動作しません

app.js 
------- 

import React from 'react'; 
import ReactDOM from 'react-dom'; 
import Routes from './routes'; 

ReactDOM.render(Routes, document.getElementById('react-container')); 

routes.js 
--------- 

import React from 'react'; 
import { DefaultRoute, Link, Route, RouteHandler,Router } from 'react-router'; 
import Page1 from './page1'; 
import Home from './home'; 
import { IndexRoute } from 'react-router'; 

let routes = 
    <Router> 
    <Route path="/" component={Home}> 
     <Route path="page1" component={ Page1 }/> 
    </Route> 
    </Router> 

export default routes 

home.js 
------- 

import React, { Component } from 'react'; 
import Header from './components/header'; 

export default class Home extends Component { 
    constructor() { 
    super(); 
    } 

    render() { 
    return (
     <div> 
     <Header /> 
     {this.props.children} 
     </div> 
    ); 
    } 
} 

page1.js 
-------- 

import React, { Component } from 'react'; 

export default class Page1 extends Component { 
    constructor() { 
    super(); 
    } 

    render() { 
    return (
     <div> 
     <h1> Page 1 </h1> 
     </div> 
    ); 
    } 
} 

「/」と「/ページ1」は、単独で、ヘッダ部を示すページに着陸するように見えます。どんな助けもありがたい。

+0

Page1コンポーネントを表示するにはどうすればいいですか? –

+0

@NaderDabit page1.jsも上記に含まれています。 – KarthikJ

答えて

0

何もしていないときは、constructorを省略してください。デフォルトコンストラクタは次のとおりです。

constructor(...args) { 
    super(...args); 
} 

だから、暗黙の小道具の引数はHomeコンポーネントに渡され取得されていません。

+0

あなたの迅速な対応に感謝します。何もしていないのですべてのコンストラクターを削除しましたが、ナビゲーションは機能しません。 – KarthikJ

6

/にナビゲートすると、page1が表示されるようですか?もしそうなら、あなたはデフォルトでpage1/ルートを持っているIndexRouteが必要になりますdocs seem to indicate

let routes = (
    <Router> 
    <Route path="/" component={Home}> 
     <IndexRoute component={Page1} /> 
    </Route> 
    </Router> 
); 
1

私はこれをテストすることができませんでしたが、私は歴史を提供することなく、反応-ルータをすることを考えますURLの場所を読み取ることができません。だから、/のパスだけをレンダリングすることは理にかなっています。

<Router history={browserHistory}> 
... 
</Router> 
+0

私はこれを索引ルートと組み合わせて解決策であると確信しています。 – Aaron

0

回答の大半は、個別にこれらに触れ、私はあなたがこのような反応コンポーネントへのインデックスルート、ブラウザの履歴を組み合わせて、あなたのエクスポートを有効にする必要があると思う:

import { Router, browserHistory } from 'react-router' 

const Routes =() => { 
    return (
     <Router history={browserHistory}> 
      <Route path="/" component={Home}> 
       <IndexRoute component={Page1}/> 
      </Route> 
     </Router> 
    ) 
} 

export default Routes; 

これがすべきReact Router(2.0.0-rc5)の最新バージョンに有効です

関連する問題