kurniawan26
kurniawan26

Reputation: 823

get parameter value from url using React Router

I want to get the id value from this React Router:

<BrowserRouter basename="/api">
    <Switch>
        <Route path="/pm" exact component={PaymentMethod}/>
        <Route path="/pw" exact component={PaymentWeb}/>
        <Route path="/rg" exact component={Registrasi}/>
        <Route path="/bonus/:id" exact component={BonusScreen}/>
        <Route path="/hb" exact component={HistoryBonus}/>
    </Switch>
</BrowserRouter>

in my BonusScreen I tried to print the value by using this :

const userId = this.props.match.id;
console.log(this.userId);

from the browser I try to access the URL like this:

bonus/NGO628567652201

But it always returned undefined.
How can I fix this ?

Upvotes: 6

Views: 20900

Answers (2)

Alcides Bezerra
Alcides Bezerra

Reputation: 435

In case of anyone having this problem. The correct would be:

const userId = this.props.match.params.id;

05/2020 UPDATE USING REACT ROUTER V4 AND HOOKS

import { useParams } from 'react-router-dom';

//Then inside your component
const { id } = useParams();

Upvotes: 21

Shan
Shan

Reputation: 619

You can try this

const id = this.props.computedMatch.params.id

Upvotes: 1

Related Questions