How to get the url params from a route in React
In this tutorial, we are going to learn about how to get the url params from a current route in react using react-router.
Getting the URL params
To get the url parameter from a current route, we can use the useParams() hook in react router v5.
Consider, we have a route like this in our react app.
<Route path="/users/:id" component={Users} />Now, we can access the :id param value from a Users component using the useParams() hook.
import React from "react";
import { useParams } from "react-router-dom";
export default function Users() {
const { id } = useParams();
return (
<div>
<h1>User id is {id}</h1> </div>
);
}In React router v4, you can access it using the props.match.params.id.
import React from "react";
import { useParams } from "react-router-dom";
export default function Users(props) {
const { id } = props.match.params;
return (
<div>
<h1>User id is {id}</h1> </div>
);
}In class-based components, you can access it like this.
import React, { Component } from "react";
class Users extends Component {
render() {
const { id } = this.props.match.params;
return (
<div>
<h1>User id is {id}</h1> </div>
);
}
}
export default Users;If you don’t have a props object inside your react component, then you need wrap with a withRouter() higher-order function.
import React, { Component } from "react";
import { withRouter } from "react-router-dom";
class Users extends Component {
render() {
const { id } = this.props.match.params;
return (
<div>
<h1>User id is {id}</h1>
</div>
);
}
}
export default withRouter(Users);

