2017-05-25 22 views
4

當聲明這樣的路線:如何使用呈現在路徑成分從反應路由器(V4)時通過匹配

App.js

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

我可以得到在id PARAM RunningProject.js這樣

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

但在宣佈路線這樣

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

我得到一個錯誤,因爲匹配不再傳遞到道具。

如何使用render=而不是component=將匹配對象傳遞到props

回答

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} />} />

解構
相關問題