【发布时间】:2017-04-18 10:43:12
【问题描述】:
我不喜欢使用Object.entries(object).map((key, i),因为我发现这是 ECMAScript 7 的实验性技术,我觉得在生产中可能会出现问题。是否有任何原生 javascript 替代方案?
我对名称、价格、描述的值没有任何问题,因为我知道它们应该在哪里呈现,并且我可以使用 Populate.key 访问它们,但是对于特性,我需要对对象进行读写并同时呈现键和价值。
我尝试使用Object.keys(priceChars).map(function(key, i),但不明白如何将键与值分开。就像,它正在渲染“性能 500”,但我需要性能词在图标类中,而 500 是要显示的实际值。
我的 JSON 结构
const Populate = {
'name': "Product",
'price': "1000",
'description': "Product description",
'characteristics': {
'performance': '500',
'pressure': '180',
'engine': '4',
'size': '860*730*1300',
'weight': '420'
}
}
和组件
class PriceBlock extends Component {
render() {
const {priceName, priceDesc, priceVal, priceChars} = this.props;
const characteristics = Object.entries(priceChars).map((key, i) => {
return (
<div className="price__icon-row" key={i}>
<i className={'ico ico-' + key[0]}></i> <span>{key[1]}</span>
</div>
);
});
return (
<div className="col-5 price__block">
<div className="price__name">{priceName}</div>
<div className="price__description">{priceDesc}</div>
<div className="price__icons">
{characteristics}
</div>
<div className={ managePriceClass(priceVal) }>{priceVal}</div>
</div>
);
}
}
【问题讨论】:
-
@Endless:这个问题基本上和React没有关系。
-
如果您使用的是 Babel 之类的编译器,只要您的配置设置正确,就不必担心。
标签: javascript reactjs ecmascript-6