gpt4 book ai didi

javascript - 通过 react-router v3 将路由与参数匹配

转载 作者:行者123 更新时间:2023-11-29 11:02:59 25 4
gpt4 key购买 nike

有几 strip 参数的路线(比如。/user/:user, car/:car/:year)如果可以使用 react-router (v3),我会尽量避免手动解析 location.pathname

如何找到与当前 url 位置匹配的路由。需要类似于:

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

最佳答案

我已经使用 react-router-dom 完成了这项工作。我简化了代码,以便您可以轻松理解它。我刚刚在主 App 组件中使用我的仪表板路由传递了参数用户,并在名为 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;

希望对您有所帮助。

关于javascript - 通过 react-router v3 将路由与参数匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43794966/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com