[英]how to render multiple copies of this component in react jsx
我想創建此組件函數的另一個副本,每次創建新副本時,我都想更改<h3>
和<p>
標記
function Ads(product) {
return(
<div className = "row" id="user-ads">
<div className = "col-sm-6 col-md-5">
<div className = "thumbnail">
<img src = "img/img1.jpg" alt = "Generic placeholder thumbnail" />
</div>
<div className = "caption">
<div className="border">
<h3>{product.title}</h3>
<p>{product.desc}</p>
<button className = "btn btn-primary" role = "button" data-toggle="modal" data-target="#view-detail">View Details
</button>
</div>
</div>
</div>
</div>
);
}
ReactDOM.render(<Ads title="PlayStation 4" desc="Lorem ipsum jipsum Lorem ipsum jipsum"/>, document.getElementById('ads'));
這樣的事情應該起作用:
var configObjects = [
{
desc: "Lorem ipsum jipsum Lorem ipsum jipsum",
img: "img1.jpg",
title: "PlayStation 4"
},
{
desc: "Lorem ipsum jipsum Lorem ipsum jipsum",
img: "img2.jpg",
title: "PlayStation 5"
},
{
desc: "Lorem ipsum jipsum Lorem ipsum jipsum",
img: "img3.jpg",
title: "PlayStation 6"
}
]
function Ads() {
var multipleAds = AdsAssembly(configObjects);
return(
<div>{multipleAds}</div>
);
}
function AdsAssembly(array) {
var jsxArray = [];
array.forEach(function (adObject, index) {
jsxArray.push(AdsContent(adObject));
})
return jsxArray;
}
function AdsContent(object) {
return (
<div className = "row" id="user-ads">
<div className = "col-sm-6 col-md-5">
<div className = "thumbnail">
<img src ={"img/" + object.img} alt = "Generic placeholder thumbnail" />
</div>
<div className = "caption">
<div className="border">
<h3>{object.title}</h3>
<p>{object.desc}</p>
<button className = "btn btn-primary" role = "button" data-toggle="modal" data-target="#view-detail">View Details
</button>
</div>
</div>
</div>
</div>
)
}
ReactDOM.render(<Ads/>, document.getElementById('ads'));
您可以使用配置數組動態填充要展示的每個廣告。 干杯!
或者,您可以將配置作為屬性傳遞,如下所示:
ReactDOM.render(<Ads configs={configObjects} />, document.getElementById('ads'));
然后像這樣使用它們:
function Ads(props) {
var multipleAds = AdsAssembly(props.configs);
return(
<div>{multipleAds}</div>
);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.