2015-11-14 8 views
5

をレンダリングしていないルータに反応:は、我々はそうのような<code>react-router</code>を使用しているコンポーネント

ReactDOM.render(
    <Router> 
     <Route path="/" component={AnyPic}> 
      <Route path="p/:photoId" component={PhotoView} /> 
     </Route> 
    </Router>, 
    document.getElementsByClassName("container")[0] 
); 

var AnyPic = React.createClass({ 
    render: function() { 
     return (
      <p>Hello world</p> 
     ) 
    } 
}); 

var PhotoView = React.createClass({ 
    render: function(){ 
     return (
      <p>This is the photo view</p> 
     ) 
    } 
}); 

react-routerを含めた後、ちょうどlocalhost:8000にするために使用するものlocalhost:8000/#/?_k=wulhmiのように探し始めました。これらの余分なパラメータがどこから来たのかわからない。 localhost:8000/#/p/XYZにアクセスしようとしたとき

はとにかく、ページが戻っ/にいっています。どんな助けでも大歓迎です。

+0

[_ "それは何ですか?_k = ckuvup junkはURLにありますか?"](https://github.com/rackt/react-router/blob/master/docs/guides/basics/Histories.md# What-is-that-that-_kckuvup-junk-in-the-url) – robertklep

+0

'AnyPic'と' PhotoView'はどのように見えますか?コンソールにエラーがありますか? – max

+0

@maxが更新され、他のコンポーネントが含まれています – Carpetfizz

答えて

7

子供のルートをレンダリングしていないためです。 the react router docsをチェックしてください。

あなたAnyPicコンポーネントすべてが動作するにthis.props.childrenを追加する場合:@robertklepはコメントで指摘したようにルーターがでハッシュの歴史を使用して、URLで「余分な」ものが追加されている

var AnyPic = React.createClass({ 
    render: function() { 
     return (
      <div> 
       <p>Hello world</p> 
       {this.props.children} 
      </div> 
     ) 
    } 
}); 

デフォルトでは、history moduleをインストールする必要がある場合は、BrowserHistoryを使用します。npm install history ドキュメントhereを参照してください。

関連する問題