При щелчке по заголовку таблицы только 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}
Другие вопросы по тегам