33
loading...
This website collects cookies to deliver better user experience
npx create-react-app useparams-example-app
npm i react-router-dom
import React from 'react'
import './App.css';
import { BrowserRouter as Router,Switch , Route, Link, useParams} from 'react-router-dom';
function App() {
return (
<BrowserRouter>
<div className="App">
<h1>React Router useParams Hook Demo</h1>
<div className="navbar">
<Link to="/">Home</Link>
</div>
<Switch>
<Route exact path="/">
<h2><p>Welcome to the Home Component</p></h2>
</Route>
</div>
</BrowserRouter>
);
}
export default App;
import React from 'react'
export const About = () => {
return (
<div>
<h2>About Us Component</h2>
</div>
)
}
const products = {
"air-jordan-3-valor-blue": {
name: "VALOUR BLUE",
img:
"https://secure-images.nike.com/is/image/DotCom/CT8532_104_A_PREM?$SNKRS_COVER_WD$&align=0,1"
},
"jordan-mars-270-london": {
name: "JORDAN MARS 270 LONDON",
img:
"https://secure-images.nike.com/is/image/DotCom/CV3042_001_A_PREM?$SNKRS_COVER_WD$&align=0,1"
},
"air-jordan-1-zoom-racer-blue": {
name: "RACER BLUE",
img:
"https://secure-images.nike.com/is/image/DotCom/CK6637_104_A_PREM?$SNKRS_COVER_WD$&align=0,1"
}
};
import React from 'react'
import './App.css';
import { BrowserRouter as Router,Redirect, Switch ,Route,Link} from 'react-router-dom';
import {ProductsPage} from './components/ProductsPage'
import {About } from './components/About'
function App() {
const products = {
"air-jordan-3-valor-blue": {
name: "VALOUR BLUE",
img:
"https://secure-images.nike.com/is/image/DotCom/CT8532_104_A_PREM?$SNKRS_COVER_WD$&align=0,1"
},
"jordan-mars-270-london": {
name: "JORDAN MARS 270 LONDON",
img:
"https://secure-images.nike.com/is/image/DotCom/CV3042_001_A_PREM?$SNKRS_COVER_WD$&align=0,1"
},
"air-jordan-1-zoom-racer-blue": {
name: "RACER BLUE",
img:
"https://secure-images.nike.com/is/image/DotCom/CK6637_104_A_PREM?$SNKRS_COVER_WD$&align=0,1"
}
};
return (
<BrowserRouter>
<div className="App">
<h1>React Router useParams Hook Demo</h1>
<div className="navbar">
<Link to="/">Home</Link>
<Link to="/products">Products</Link>
<Link to="/about">About</Link>
</div>
<Switch>
<Route exact path="/">
<h2><p>Welcome to the Home Component</p></h2>
</Route>
<Route path="/products">
<ProductsPage products={products}/>
</Route>
<Route path="/about">
<About />
</Route>
</Switch>
</div>
</BrowserRouter>
);
}
export default App;
import React from 'react'
import { Link, Switch, Route } from 'react-router-dom'
export const ProductsPage = ({products}) => {
return (
<div className="product-box">
<h2 className="title"> Products Component</h2>
<div className="box">
{Object.entries(products).map(([id, {name,img}]) => (
<li key={id}>
<Link to={`/product/${id}`}>
<h2 className="product-name">{name}</h2>
<img src={img} alt={name}/>
</Link>
</li>
))}
</div>
</div>
)
}
import React from 'react'
import { useParams } from 'react-router'
export const Product = ({products}) => {
let {id} = useParams();
const product = products[slug]
const {name,img} = product;
{console.log(id)}
return (
<div>
<h2>This is the Product Detail component</h2>
<h2>{slug}</h2>
<h3>Brand: {name}</h3>
<img src={img} alt={name}/>
</div>
)
}
import React from 'react'
import './App.css';
import { BrowserRouter as Router,Redirect, Switch ,Route,Link,useParams} from 'react-router-dom';
import {ProductsPage} from './components/ProductsPage'
import {About } from './components/About;
import {Product} from './components/Product'
function App() {
const products = {
"air-jordan-3-valor-blue": {
name: "VALOUR BLUE",
img:
"https://secure-images.nike.com/is/image/DotCom/CT8532_104_A_PREM?$SNKRS_COVER_WD$&align=0,1"
},
"jordan-mars-270-london": {
name: "JORDAN MARS 270 LONDON",
img:
"https://secure-images.nike.com/is/image/DotCom/CV3042_001_A_PREM?$SNKRS_COVER_WD$&align=0,1"
},
"air-jordan-1-zoom-racer-blue": {
name: "RACER BLUE",
img:
"https://secure-images.nike.com/is/image/DotCom/CK6637_104_A_PREM?$SNKRS_COVER_WD$&align=0,1"
}
};
return (
<BrowserRouter>
<div className="App">
<h1>React Router useParams Hook Demo</h1>
<div className="navbar">
<Link to="/">Home</Link>
<Link to="/topics">Topics</Link>
<Link to="/about">About</Link>
</div>
<Switch>
<Route exact path="/">
<h2><p>Welcome to the Home Component</p></h2>
</Route>
<Route path="/products">
<ProductsPage products={products}/>
</Route>
<Route path="/about">
<About />
</Route>
<Route path="/product/:id"><Product products={products}/></Route>
</Switch>
</div>
</BrowserRouter>
);
}
export default App;