zent
Version:
一套前端设计语言和基于React的实现
89 lines (79 loc) • 1.47 kB
Markdown
order: 6
zh-CN:
title: 排序
product: 商品
productName: 商品名
uv: 访问量
stock: 库存
en-US:
title: Sort
product: Product
productName: Product Name
uv: uv
stock: stock
```jsx
import { Grid } from 'zent';
const datasets = [];
for (let i = 0; i < 3; i++) {
datasets.push({
id: i,
name: `{i18n.product} ${i}`,
uv: i * 10,
stock: i * 5
})
}
const columns = [
{
title: '{i18n.productName}',
name: 'name',
needSort: true
}, {
title: '{i18n.uv}',
name: 'uv'
}, {
title: '{i18n.stock}',
name: 'stock',
needSort: true
}
];
class Sort extends React.Component {
constructor(props) {
super(props);
this.state = {
datasets: datasets,
sortBy: 'name',
sortType: ''
};
}
onChange = (conf) => {
console.log(conf, 'conf')
const { sortType, sortBy } = conf;
const { datasets } = this.state;
let sortDatasets = datasets;
if (sortType === 'asc') {
sortDatasets = datasets.sort((a, b) => a[sortBy] - b[sortBy]);
} else if (sortType === 'desc') {
sortDatasets = datasets.sort((a, b) => b[sortBy] - a[sortBy]);
}
this.setState({ ...conf, datasets: sortDatasets });
}
render() {
return (
<Grid
columns={columns}
datasets={this.state.datasets}
onChange={this.onChange}
sortBy={this.state.sortBy}
sortType={this.state.sortType}
size="large"
/>
);
}
};
ReactDOM.render(
<Sort />
, mountNode
);
```