Javascript 获取react路由器v4中的路径参数
我正试图通过我的应用程序建立路由器链接 在这个场景中,我有三个文件Javascript 获取react路由器v4中的路径参数,javascript,reactjs,react-router,Javascript,Reactjs,React Router,我正试图通过我的应用程序建立路由器链接 在这个场景中,我有三个文件 App.js Book.js DetailedView.js 我在书的内部建立了一个,只有当鼠标悬停(在书皮上)时才会出现 一、 稍后,要获取:id,以便在我的中创建一个this.props.book.find(:id),以便在组件中接收路径参数,您需要首先将您的组件与withRouterHOC fromreact router连接,这样您就可以访问路由器道具,并从match道具中获取路径params作为this.props.m
App.js
Book.js
DetailedView.js
我在书的内部建立了一个
,只有当鼠标悬停(在书皮上)时才会出现
一、 稍后,要获取
:id
,以便在我的
中创建一个this.props.book.find(:id)
,以便在组件中接收路径参数,您需要首先将您的组件与withRouter
HOC fromreact router
连接,这样您就可以访问路由器道具,并从match
道具中获取路径params
作为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文档
匹配
匹配对象包含有关如何匹配
的信息
URL<代码>匹配对象包含以下属性:
- 从对应于路径动态段的URL解析的参数-(对象)键/值对
- 如果整个URL匹配(无尾随字符),则isExact-(布尔值)true
- 路径-(字符串)用于匹配的路径模式。用于构建嵌套的对象
- url-(字符串)url的匹配部分。用于构建嵌套的对象
this.props.match
您可以通过执行以下操作来访问:id this.props.params.id 您可以通过多种方式处理路由,而不必执行 您还可以在函数中处理它
单击时函数dosomething(id)
{
doSomething();
这个。道具。历史。推({
路径名:'/example/'+id
});
}
很高兴我能正确地解释它:)这个.props.computedMatch.params.id
,我是从computedMatch得到的。有没有办法在应用程序级别访问math.params<代码>匹配路径()似乎是我猜测的唯一方法,但我的某些路由是动态的,因此与某些路径不匹配。@SibasishMohanty请查看此帖子:@SibasishMohanty这可能不是处理某些事情的最佳方法,但使用路由参数,除了将状态提升到公共父级甚至存储中之外,没有其他方法(flux或redux)访问整个应用程序中的值这似乎根本没有回答这个问题。由于答案不相关且不完整,所以被否决。
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}
/>
)}/>