Sometimes, we want to pass URL parameters to components with React Router.
In this article, we’ll look at how to pass URL parameters to components with React Router.
Pass URL Parameters to Component with React Router
We can pass URL parameters if we create a route that allows us to pass parameters to it.
For instance, we can write:
const App = () => {
return (
<Router>
<div>
<ul>
<li>
<Link to="/foo">foo</Link>
</li>
<li>
<Link to="/bar">bar</Link>
</li>
<li>
<Link to="/baz">baz</Link>
</li>
</ul>
<Switch>
<Route path="/:id" children={<Child />} />
</Switch>
</div>
</Router>
);
}
function Child() {
const { id } = useParams();
return (
<div>
<h3>ID: {id}</h3>
</div>
);
}
We have a Child component that has the useParams hook.
It lets us get the URL parameters that we want and it’s passed in from navigation.
It returns the URL parameter as a key-value pair.
The keys are what we defined and the value is what we have passed when we navigate.
In App , we have the Link components with the paths.
And also we have the Switch components that have the route that takes the id URL parameter.
The Route has the route that we pass in. children has the component that’s displayed.
Conclusion
We can pass URL parameters if we create a route that allows us to pass parameters to it.