Last updated: Apr 7, 2024
Reading timeยท2 min

Use the useParams() hook to get the ID from a URL in React, e.g.
const params = useParams().
The useParams hook returns an object of key-value pairs of the dynamic
params from the current URL that were matched by the Route path.
import React from 'react'; import {Route, Link, Routes, useParams} from 'react-router-dom'; function Users() { // ๐๏ธ Get the ID from the URL const params = useParams(); console.log(params); // ๐๏ธ {userId: '4200'} return <h2>userId is ๐๏ธ {params.userId}</h2>; } export default function App() { return ( <div> <div> <nav> <ul> <li> <Link to="/">Home</Link> </li> <li> <Link to="/about">About</Link> </li> <li> {/* ๐๏ธ link to dynamic path */} <Link to="/users/4200">Users</Link> </li> </ul> </nav> <Routes> <Route path="/about" element={<About />} /> {/* ๐๏ธ handle dynamic path */} <Route path="/users/:userId" element={<Users />} /> <Route path="/" element={<Home />} /> </Routes> </div> </div> ); } function Home() { return <h2>Home</h2>; } function About() { return <h2>About</h2>; }

The useParams hook returns
an object of key-value pairs of the dynamic params from the
current URL that were matched by the
<Route path>.
Notice that we set a dynamic path prop on the Route component that renders
the Users component - <Route path="/users/:userId" element={<Users />} />.
We can use the useParams hook to get the ID when the visitor navigates to
/users/some-id,
function Users() { // ๐๏ธ get ID from URL const params = useParams(); console.log(params); // ๐๏ธ {userId: '4200'} return <h2>userId is ๐๏ธ {params.userId}</h2>; }
The route would match anything after /users/, e.g. /users/123 or
/users/asdf.
Make sure to wrap your React application in a Router component in your
index.js file before using the useParams hook.
import {createRoot} from 'react-dom/client'; import App from './App'; import {BrowserRouter as Router} from 'react-router-dom'; const rootElement = document.getElementById('root'); const root = createRoot(rootElement); // ๐๏ธ Wrap the App in a Router root.render( <Router> <App /> </Router> );

Router component is in your index.js file because that's the entry point of your React application.Once your entire app is wrapped with a Router component, you can use any of
the hooks from the React router package anywhere in your components.
You can learn more about the related topics by checking out the following tutorials: