#javascript #reactjs #react-router
Вопрос:
У меня есть маршрутизатор
function App() {
return (
<BrowserRouter>
<NavBar />
<Route exact path='/' render={(props) => <Main />}/>
<Route exact path='/products/:productId' render={(props) => <Product />}/>
</BrowserRouter>
);
}
и на главной странице
function Main() {
const [products, setProducts] = useState([])
useEffect(() => {
Axios.get("http://localhost:3001/products/get").then((p) => {
setProducts(p.data)
})
}, []);
return (
<div>
<h2>Productos</h2>
<div className="store">
{products.reverse().map((p) => {
let ref = `/products/${p.idProducts}`
return <a href={ref}>
<div className="product">
<b>{p.name}</b><br/><i>${p.value}</i>
</div></a> })}
</div>
</div>
)
}
И я хочу получить на своей странице продукта информацию о том, какой продукт был выбран (мне просто нужны p.idПродукты продукта, выбранного на главной странице).
Комментарии:
1. В чем именно заключается проблема? Вы хотите знать, как ссылаться
productId
на URL-адрес?2. Когда я нажимаю на <a>, я хочу указать <a><Продукт /> p.idПродукты продукта, на который я нажал. Таким образом, я могу отобразить страницу продукта с идентификатором продукта.
3. Пожалуйста, отредактируйте вопрос, чтобы ограничить его конкретной проблемой с достаточной детализацией для определения адекватного ответа.
Ответ №1:
Похоже, вы ищете это:
const { productId } = useParams();