我正在对一个表进行排序,它应该按字母顺序对列进行排序,按字母顺序反转并在每次调用该方法时返回到原始形式。
这是我的代码:
export default class GenericTable extends React.PureComponent {
constructor(props) {
super(props);
this.state = {
otherStudd: '',
currentSort: 'default',
rows: this.props.rows, // I receive the rows data on props
};
}
onSortChange = index => {
const sortMap = {
default: 'up',
up: 'down',
down: 'default',
};
const { currentSort, currentIndex } = this.state;
const nextSort = currentIndex === index ? sortMap[currentSort] : 'default';
const newRows = [...this.state.rows]; // line 40 - here is the error
switch (nextSort) {
case 'up':
newRows.sort((a, b) => (a.cells[index] <= b.cells[index] ? -1 : 1));
break;
case 'down':
newRows.sort((a, b) => (b.cells[index] <= a.cells[index] ? -1 : 1));
break;
}
this.setState({
rows: newRows,
currentSort: nextSort,
currentIndex: index,
});
};
...
}
我认为代码看起来正确,但我收到一条 es-lint 错误消息:
Line 40:25: Use callback in setState when referencing the previous state react/no-access-state-in-setstate
它应该完成一个回调函数,但我不知道如何让它工作。
有任何想法吗?
慕桂英546537
撒科打诨
阿波罗的战车
相关分类