reactjs - 我如何将 API 调用从至尊函数发送到另一个名为 product 的组件,以更改名为 cart: true 并显示在购物车中的模拟数据
问题描述
function Supreme(){
return (
<div>
<Meniu />
<Informatii />
<h1 className="title">Supreme</h1>
<Product myObj={supremeData}/>
<div className="numar">
<p >{supremeData.length} Products</p>
</div>
<Footer />
</div>
)
}
function Product (props) {
const Lista = [...props.myObj]
return (
<div className="product-list">
{Lista.map((produse)=>{
return(
<div className="produse" key={produse.id}>
<img src={produse.image} />
<h1>{produse.name}</h1>
<h2>{produse.price}</h2>
<button className="button-product">ADD TO CART</button>
</div>
)
})}
</div>
)
}
如何将 API 调用从至尊函数发送到另一个名为 product 的组件以更改名为 cart: true 的模拟数据并将其显示在购物车中?
解决方案
1- 在至尊组件中定义处理 api 调用的方法。2- 将它传递给 Product 组件,就像你为“myObj”道具所做的一样。3- 当产品组件中发生所需事件时调用定义的方法。(例如:componentDidMount 或 onclcik)
function Supreme(){
cosnt [card , setCard]=useState({})
const method = (p)=>{
axious.post(p).then(res=> setCard(res)}}
return (
<div>
<Meniu />
<Informatii />
<h1 className="title">Supreme</h1>
<Product myObj={supremeData} apiCall={method}/>
<div className="numar">
<p >{supremeData.length} Products</p>
</div>
<Footer /></div>);}
和产品组件
function Product (props) {
const Lista = [...props.myObj]
return (
<div className="product-list">
{Lista.map((produse)=>{
return(
<div className="produse" key={produse.id}>
<img src={produse.image} />
<h1>{produse.name}</h1>
<h2>{produse.price}</h2>
<button onclick={()=>props.apiCall()}
className="button-product">ADD TO CART</button>
</div>
)
})}
</div>
)
}
推荐阅读
- java - 为什么我不能在这个循环中调用另一个类的方法?
- android - 如何在firestore android中获取集合的根文档字段
- django - 如何更改 django-ckEditor 的 UI 语言?
- java - 使用 Selenium 时 System.setProperty() 的意义是什么
- python - virtualenv 从源代码使用库
- java - 手机状态改变时如何发送http请求?
- projection - 是否有一个 javascript 库来重新投影 geojson,以便 mapbox gl 将其呈现为“Plate-Carrée”?
- java - 更新 SQL 数据库列
- unity3d - 在运行时添加状态
- javascript - graphql 查询到 json 查询