При щелчке по заголовку таблицы только ASC всегда является sortDirection, как изменить его на DESC, реагировать-виртуализировать
//this function sort table data in ASC and DESC order
_sortTable({ sortBy, sortDirection }) {
//console.log(event)
console.log('sortBy='+sortBy+', sortDirection='+sortDirection);
const tempList = _.sortBy(currentTableData , item => item[sortBy]);
const sortedListData = sortDirection === SortDirection.DESC ? tempList.reverse() : tempList;
this.setState({ sortBy, sortDirection, sortedListData });
rowRendererData = sortedListData;
this.tableRef.forceUpdateGrid();
}
Эта функция будет вызываться при щелчке заголовка столбца таблицы.
sort={this._sortTable}
sortBy={this.state.sortBy}
sortDirection={this.state.sortDirection}
на <Table/>
,
Но при нажатии на заголовок таблицы, sortDirection
является ASCENDING
(ASC
всегда)
Как поменять sortDirection
в DESCENDING
(DESC
)?
2 ответа
_sortTable({ sortBy, sortDirection }) {
this.setState(function(prevState) {
return { sortDirection: prevState.sortDirection === SortDirection.ASC ? SortDirection.DESC : SortDirection.ASC }
});
// console.log('sortBy='+sortBy+', sortDirection='+sortDirection);
const tempList = _.sortBy(currentTableData , item => item[sortBy]);
const sortedListData = this.state.sortDirection === SortDirection.DESC ? tempList.reverse() : tempList;
this.setState({ sortBy, sortedListData });
rowRendererData = sortedListData;
this.tableRef.forceUpdateGrid();
}
Похоже, функция получает sortDirection
как свойство объекта, вы должны передать этот аргумент:
sort={this._sortTable({sortDirection: SortDirection.DESC})}
sortBy={this.state.sortBy}
sortDirection={this.state.sortDirection}