6

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 ?

2
  • Possible Duplicate of get-path-params-in-react-router-v4 Commented Apr 5, 2018 at 9:15
  • You tagged this api but that says "DO NOT USE: Tag with the library you mean, [api-design], or something else appropriate instead.". You should fix that. Commented Apr 5, 2018 at 9:42

2 Answers 2

21

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();
Sign up to request clarification or add additional context in comments.

Comments

1

You can try this

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.