Это называется Declarative Routing
в реакции. Вы можете легко сделать это с помощью компонента <Route />
, подобного этому. В вашем файле App.js
вы можете определить свой путь и slug
, к которому вы сможете обратиться позже в компоненте, к которому вы переходите.
function App() {
return (
<div className="App">
<Router>
<Switch>
<Route exact path="/" component={Results} />
<Route path="/detail/:slug" component={Details} />
</Switch>
</Router>
</div>
);
}
Вы можете указать путь в своем компоненте следующим образом:
//results.js
<Link
to={{
pathname: `/detail/${url}`,
price:item.price,
name:item.name
}}
>
<div>item.name </div>
<div>item.price</div>
</Link>;
И в вашем detailTemplate.js
вы можете получить доступ к реквизиту вот так.
export const DetailPage = ({ location }) => {
console.log(location);
return (
<div>
<h3>{location.price}</h3>
<div>{location.name}</div>
</div>
);
};