Taken from React Router official docs:
From the upgrade guide from 1.x to 2.x:
<Link to>
, onEnter, and isActive use location descriptors
<Link to>
can now take a location descriptor in addition to strings.
The query and state props are deprecated.
// v1.0.x
<Link to="/foo" query={{ the: 'query' }}/>
// v2.0.0
<Link to={{ pathname: '/foo', query: { the: 'query' } }}/>
Unfortunately, there's no support for passing in a param
object, you yourself saw that.
In order to dynamically use the route you proposed, you would have to do something along the lines of:
<Link to={ MY_ROUTE.replace(':userId', '<someUserIdFromSomewhere>') }/>
Or you could further optimize by instead of exporting a string for MY_ROUTE
, you could export a userLink
function as such:
function userLink(userId) {
return `/users/${userId}/`;
}
and then use that wherever you would want to use a Link
to the route.
Below you can find supported parameters and API exposed on the Link
component:
Router Link API
/users/123
– Tideway