get parameter value from url using React Router

17,327

Solution 1

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();

Solution 2

You can try this

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

Share:
17,327
kurniawan26
Author by

kurniawan26

Updated on June 12, 2022

Comments

  • kurniawan26
    kurniawan26 almost 2 years

    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 ?