@DarkSir

Как сделать сортировку после применения normalizr?

На стеке react/redux есть запрос к api. Приходит примерно такие данные:
[
  {...},
  {...},
  {...},
]

Массив с объектами, внутри объектов есть ещё поля с массивами объектов. С помощью normalizr, делаю нормализацию и получаю result и entities объекты. Поля из entities сохраняются в store. Затем стоит задача отсортировать по какому нибудь полю объект, но normalizr превращает массив в объект и становиться затруднительно его сортировать. Вопрос как сделать это правильно?

Мои варианты:
1. Делать сортировку до применения normalizr. Минус в том что тогда в store придется записывать данные не нормализованные, а то что с сервера пришло, или где-то на этапе после прихода данных с сервера дергать store, брать от туда по какому полю нужно сортировать, проводить сортировку и нормализовать его после этого.

2. После нормализации создать ещё один массив, в котором будут объекты с id и полями по которым можно отсортировать. Проводить сортировку на нем, потом перебирать его и подставлять id. Например: entities.users[id]. Минус в том что normalizr уже создает массив для перебора id result. Придется либо изменять его либо новый делать.

Если есть у кого-то опыт такой или идеи подскажите.
  • Вопрос задан
  • 388 просмотров
Решения вопроса 1
gadfi
@gadfi
https://gamega.org
как то это все надуманно, кто мешает писать что то вроде
result.sort((a, b) => entities.data[a].sortField - entities.data[b].sortField).map(id=>this.renderData( entities.data[id]) )
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@vshvydky
Lodash unionby
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы