Добрый день! Ваш вопрос очень хорошо разбирается во втором курсе на egghead от создателя Redux. Конкретно, один из самых близких к вашему вопросу ответ -
https://egghead.io/lessons/javascript-redux-normal... (используется normalizr).
Но мой ответ, к вам не сколько в видео про "нормалайзер", а про то, что посмотрите весь курс и вы познакомитесь с такой темой, как селекторы. То есть, будете вытаскивать в компонентах только нужные данные с помощью определенных функций селекторов, которые опишете в ваших редьюсерах. У вас получится как минимум на 1 уровень глубже использовать combineReducers для того, чтобы держать:
а) массив id-шек
б) объект с ключами, в виде id ваших записей (
объект объектов, так сказать)
Говорю это опираясь на свой опыт. После перехода на "массив с id" + "объект объектов" + селекторы => проблема указанная в вопросе исчезает!
Привожу скриншот из проекта, над которым сейчас работаю: (на странице рендерится список поставщиков)
P.S. этот вопрос будет подробно разобран в новом туториале, но боюсь он выйдет не раньше конца лета.