Вам нужно добавить направление к вашей функции сравнения и использовать его, чтобы изменить результаты следующим образом:
compareBy(key, ascending) {
let reverse = ascending ? 1 : -1;
return function (a, b) {
if (a[key] < b[key]) return -1 * reverse;
if (a[key] > b[key]) return 1 * reverse;
return 0;
};
}
Теперь вам нужно будет сохранять логическое значение для каждой строки, по которой вы хотите отсортировать и переключайте его (переключайте true в false и наоборот) при каждом щелчке
<th className="" onClick={() => {this.milageAsc = !this.milageAsc; this.sortBy('milage', this.milageAsc)}}>Milage </th>
Этот флаг также можно использовать для переключения класса на знак стрелки, указывающий порядок сортировки в заголовке столбца. .
Возможно, я неправильно понял направление Восходящего / Нисходящего, но я надеюсь, что вы поймете мой дрейф