Вы можете добавить переменную состояния, чтобы указать, должна ли сортировка выполняться по возрастанию или убыванию, и соответствующим образом обновить функцию compareBy
.
Например, если вы называете переменную состояния sortAscending
(boolean
), вы можете обновить compareBy
, чтобы он выглядел примерно так:
compareBy(key) {
const { sortAscending } = this.state;
return function (a, b) {
if (a[key] < b[key]) return sortAscending ? -1 : 1;
if (a[key] > b[key]) return sortAscending ? 1 : -1;
return 0;
};
}
Затем добавьте кнопку где-нибудь для переключения sortAscending
или обновите ее последовательными нажатиями кнопки сортировки по имени.