【发布时间】:2018-10-09 15:02:12
【问题描述】:
我在我的显示组件中导入了产品数据。对于 JSON 中的每个产品,我使用 .map() 来显示内容。现在我想按升序或降序对产品价格进行排序,但我做不到。
products.js:
const products = [
{
"index": 0,
"isSale": true,
"isExclusive": false,
"price": "Rs.2000",
"productImage": "product-1.jpg",
"productName": "Striped shirt",
"size": ["XS", "S", "L", "XL"]
},
{
"index": 1,
"isSale": false,
"isExclusive": false,
"price": "Rs.1250",
"productImage": "product-2.jpg",
"productName": "Denim shirt",
"size": ["XS", "S"]
},
{
"index": 2,
"isSale": false,
"isExclusive": true,
"price": "Rs.1299",
"productImage": "product-3.jpg",
"productName": "Plain cotton t-shirt",
"size": ["S", "M"]
},
{
"index": 3,
"isSale": false,
"isExclusive": false,
"price": "Rs.1299",
"productImage": "product-4.jpg",
"productName": "Plain 3/4 sleeve cotton t-shirt",
"size": ["XL"]
},
{
"index": 4,
"isSale": false,
"isExclusive": false,
"price": "Rs.2500",
"productImage": "product-5.jpg",
"productName": "White dress shirt",
"size": ["M", "L"]
},
{
"index": 5,
"isSale": false,
"isExclusive": false,
"price": "Rs.2399",
"productImage": "product-6.jpg",
"productName": "Long Sleeve Skivvy Top",
"size": ["XS", "S", "M"]
},
{
"index": 6,
"isSale": true,
"isExclusive": false,
"price": "Rs.2000",
"productImage": "product-7.jpg",
"productName": "Puffer Vest with Hood",
"size": ["M", "L", "XL"]
},
{
"index": 7,
"isSale": false,
"isExclusive": true,
"price": "Rs.1699",
"productImage": "product-8.jpg",
"productName": "Funnel Neck Swing Top",
"size": ["XS", "S", "XL"]
}];
export default products;
现在在显示组件中,我正在映射每个产品并显示它。
显示组件.js:
import React, { Component } from 'react';
import products from './products';
class App extends Component {
constructor(){
super();
this.state = {
sortDirection: 'descending',
data: this.state.data.sort(descending)
};
}
sortData() {
if(this.state.sortDirection ==='descending') {
this.setState({
sortDirection: 'ascending',
data: this.props.payYears.sort(sortAscending)
});
} else {
this.setState({
sortDirection: 'descending',
data: this.props.payYears.sort(sortDescending)
});
}
}
render() {
return (
<div>
<h1>This is display component</h1>
<ul>
{
products.map(product => {
return <li>{product.index} - {product.price}</li>;
})
}
</ul>
</div>
);
}
}
export default App;
下面的屏幕截图显示了价格的初始顺序:
【问题讨论】:
-
@Colin 伟大的作品完美。谢谢你:)
-
@Colin 你能复制粘贴代码作为答案吗:)
-
好的,我现在就去做。
标签: javascript reactjs