2017-05-25 23 views
4

このようなルート宣言:(V4)ルータを反応からルートコンポーネントでレンダリング使用時一致を渡す方法

App.js

<Route path="/:id" component={RunningProject} />

私はのid PARAMを得ることができるがこの

constructor(props){ 
    super(props) 
    console.log(props.match.params.id); 
} 

ようRunningProject.jsしかし、この

のようなルートを宣言するとき

マッチがもはや小道具に渡されないため、エラーが発生します。

propsに一致オブジェクトを渡すには、component=の代わりにrender=を使用しますか?あなたはこのようにレンダリングコールバックにパラメータとして渡されたオブジェクトを分解する必要がマッチオブジェクトを渡すために

答えて

7

は:

<Route path="/:id" render={({match}) => <RunningProject getProjectById={this.getProject} match={match} />} />

あなたはまた、他のオブジェクトを取得することができ、ここでのオブジェクトのリストです渡さ:

  • history
  • location
  • staticContext
  • match

それとも、ただ全体のオブジェクトを渡すと、受信コンポーネント

<Route path="/:id" render={(obj) => <RunningProject getProjectById={this.getProject} obj={obj} />} />

に解体でき
関連する問題