Похоже, вы просто не используете то, что вам возвращает Promise.all
(оно не изменяет данные, которые вы ему передаете).
То же самое происходит с функцией sort
, но не измените данные, которые вы передаете ему, он просто возвращает новый массив:
let people = await Promise.all(/* the promises */)
people = poeple.sort((a, b) => b.income * 1 - a.income * 1);
setPeoples(people);
Вероятность снижения производительности связана с тем, что вы выполняете запрос для каждого человека. Хотя это будет работать для нескольких предметов, 400 будет слишком много. Попробуйте отправить данные всех пользователей из вашего бэкэнда, возможно, по маршруту, подобному следующему:
const url = "https://example.com/people";
А затем сделайте их доступными по отдельности, если это необходимо (для других страниц)
const url = "https://example.com/people/:id";