我有一个包含 N 个对象的变量。对于每个对象,我希望将它们传递给一个子组件 - 所以我们将有 N 个具有不同道具的子组件。
家长:
renderBrandCards() {
const { marketData } = this.state;
let i = 0;
for (const stock in marketData){
i++;
return (
<BrandCard
key={i}
stock_name={stock}
stock_data={marketData[stock]}
/>
)
}
}
// .... render etc
return (
<ScrollView>
{this.renderBrandCards()}
</ScrollView>
)
但是,只有第一个对象marketDataMap
被传递给BrandCard
组件并呈现。它不会循环。
我for ... in
在这里用错了吗?
我在这里使用 for ... 错了吗?
是的,因为你是从功能后,在返回第一步骤的循环。
您必须创建一个包含所有所需项目的数组,然后只返回该数组。
let i = 0;
let brandCards = [];
for (const stock in marketData){
i++;
brandCards.push(
<BrandCard
key={i}
stock_name={stock}
stock_data={marketData[stock]}
/>
)
}
return brandCards;
但我建议您使用另一种方法与map
方法。
return Object.keys(marketData).map(function(key, i){
return (<BrandCard key={i} stock_name={key} stock_data={marketData[key]}/>);
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句