为了在您的组件中接收路径参数,您需要首先将您的组件与
withRouterHOC 连接,
react-router以便您可以访问Router道具并
params从
match道具中获取路径。
this.props.match.params.id
样例代码:
import {withRouter} from 'react-router';class BookDetailedView extends React.Component { render() { var id = this.props.match.params.id }}export default withRouter(BookDetailedView) ;或简单地将其与渲染道具一起传递给路线
<Route path="/details/:id" render={({match}) => ( <BookDetailedView bookStateUpdated = {this.bookStateUpdated} book = {this.state.books} id={match.params.id} />)}/>从的React文档
match
比赛
匹配对象包含有关
<Route path>URL 如何匹配的信息。match对象包含以下属性:
- params-(对象)从URL解析的键/值对,对应于路径的动态段
- isExact-(布尔值)如果整个URL都匹配,则为true(无尾字符)
- path-(字符串)用于匹配的路径模式。用于构建嵌套的s
- url-(字符串)URL的匹配部分。用于构建嵌套的s
您将在各个地方访问匹配对象:
- 将组件路由为
this.props.match- 将渲染路线设置为({match})=>()
- 将子级路由为({match})=>()
- withRouter为this.props.match
- matchPath作为返回值
如果路线没有路径,因此始终匹配,则将获得最接近的父项匹配项。同样适用于路由器



