gpt4 book ai didi

javascript - 如何使用react-router获取元素ID以显示单击元素的所有数据?

转载 作者:行者123 更新时间:2023-12-02 21:05:20 26 4
gpt4 key购买 nike

所以,我有我的组件,它显示所有产品。我现在想要的是,当我单击其中一个产品时,打开组件以显示所单击产品的所有数据。当我点击时,它会显示这个 url http://localhost:3000/products/1。如何在 url

末尾获取此 id 的数据

这是从 mysql 获取所有数据的组件:

import React from "react";
import {Link} from "react-router-dom"


class Home extends React.Component{
constructor(){
super()
this.state = {
products: [],
isLoaded: false
}
}

componentDidMount(){
fetch("/home")
.then(res => res.json())
.then(result =>{
return(
this.setState({
products: result,
isLoaded: true
})
)
})
}

render(){
if(!this.state.isLoaded){
return(
<h1>Loading...</h1>
)
}

return (
<div className="row text-center">
{this.state.products.map(elements =>
<div className="col-lg-6">
<h1>
<Link to={`products/${elements.id}`}>{elements.name}</Link>
</h1>
</div>
)}
</div>
)
}
}
export default Home;

如何在此处获取点击的产品信息:

import React from "react";

class ProductDesc extends React.Component{
constructor(){
super()
}

componentDidMount(){
fetch()
.then(res => res.json())
.then(result =>{
console.log(result)
})
}

render(){
return(

)
}
}
export default ProductDesc;

最佳答案

在您的Router中,您应该有一个呈现ProductDescRoute

<Route path="products/:id" component={ProductDesc} />

这将添加 route props到渲染的组件。您可以从 match 访问路由参数 Prop 。

产品描述

this.props.match.params.id

关于javascript - 如何使用react-router获取元素ID以显示单击元素的所有数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61239621/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com