react 路由拦截的时候添加url 参数
时间: 2023-11-10 19:05:30 浏览: 123
可以使用 `withRouter` 高阶组件将路由的参数添加到组件的 props 中,然后在组件中就可以获取到路由的参数了。具体做法如下:
1. 首先在路由组件中引入 `withRouter`:
```javascript
import { withRouter } from 'react-router-dom';
```
2. 然后使用 `withRouter` 包装组件:
```javascript
class MyComponent extends React.Component {
// ...
}
export default withRouter(MyComponent);
```
3. 在组件中就可以通过 `this.props.location.search` 获取到路由的参数了。例如,如果路由为 `/path?foo=bar`,则 `this.props.location.search` 的值为 `?foo=bar`。
```javascript
class MyComponent extends React.Component {
componentDidMount() {
const params = new URLSearchParams(this.props.location.search);
const foo = params.get('foo');
console.log(foo); // 输出 'bar'
}
// ...
}
```
注意:如果你使用的是 React Router v5 或更早版本,需要使用 `this.props.location.search` 来获取路由参数。如果你使用的是 React Router v6,需要使用 `useLocation` 钩子来获取路由参数。
阅读全文