有几条带params的路线(例如。/ user /:user,car /:car /:year)
如果可以使用react-router(v3),我试图避免手动解析location.pathname
。
如何找到与当前网址匹配的路由。 需要类似的东西:
if (router.match_to_route('/user/:user')) {
... do something
}
...
https://github.com/ReactTraining/react-router/blob/v3/modules/matchRoutes.js中的方法matchRoutes可能是我需要的方法。 谢谢。
更新:
可以通过
来实现import { match } from 'react-router';
const routes = router.routes;
match({ routes, location }, (error, redirect, renderProps) => {
const listOfMatchingRoutes = renderProps.routes;
if (listOfMatchingRoutes.some(route => route.path === '/user/:user')) {
...
}
}
https://github.com/ReactTraining/react-router/issues/3312#issuecomment-299450079
答案 0 :(得分:2)
我使用react-router-dom完成了这项工作。我简化了代码,以便您可以轻松理解它。我刚刚在主App组件中使用我的仪表板路径传递了param用户,并使用名为Dashboard的子组件中的 this.props.match.params.user 访问它。
App.js文件
class App extends React.Component {
constructor(props) {
super(props);
this.state = {open: false};
this.state = {message: "StackOverflow"};
}
render(){
return (
<Router>
<div>
<Route exact path="/dashboard/:user" render={props => <Dashboard {...props} />} />
<Route exact path="/information" render={props => <Information {...props} />} />
</div>
</Router>
);
}
}
<强> Dashboard.js 强>
import React from 'react';
class Dashboard extends React.Component {
constructor(props) {
super(props);
}
render() {
return (
<div ><h1> Hello {this.props.match.params.user}</h1></div>
);
}
}
export default Dashboard;
我希望它会对你有所帮助。
答案 1 :(得分:0)
在RR4上,您可以使用matchPath
select sum(aal.dep)
From AllReports19921231AssetsAndLiabilities aal;