I am learning useParams hook in react. I have a URL like this and need to be able to extract the letter 9 from it.

http://localhost:3010/9/solution

How can I go about this ?

2

Best Answer


I'm assuming you're using react router, if you define a route like this for example:

<Route path="/:id/about"><About /></Route>

Notice that you define the path with this :id notation, that means that the id will be the param in this specific case. Then you create a Link component

<Link to="/2/about">About</Link>

And in your component that in this example is the about component you can use the hook like this:

function About() {const { id } = useParams();return (<div><h2>Now showing post {id}</h2></div>);}

I have this code sandbox if you want to check the result https://codesandbox.io/s/react-router-basic-nv8pn

Assuming you are using react-router, then you should use Browser Router in your React app:https://reacttraining.com/react-router/web/api/BrowserRouter

and then declare a route like:

<Route path="/{id}/solution" component={Component} />

and then in your Component you'll be able to use it:

const { id } = useParams();