React-Redux сложные (глубокие) объекты состояния

Учитывая мое начальное состояние редукции:

const state = {
  currentView: 'ROOMS_VIEW',
  navbarLinks: List([
    {name: 'Rooms', key: 'ROOMS_VIEW'},
    {name: 'Dev', key: ''}
  ]),
  roomListsSelected: {group: 0, item: 0},
  roomLists: [
    {
      name: "Filters",
      expanded: true,
      listItems: [
        { icon: 'images/icon-warning.svg', name: 'Alerts', filter: room => room.hasAlert },
        { icon: 'images/icon-playlist.svg', name: 'In Progress', filter: room => room.progress > 20 },
        { icon: 'images/icon-playlist.svg', name: 'Almost Done', filter: room => room.progress > 90 },
        { icon: 'images/icon-playlist.svg', name: 'Complete', filter: room => room.status === 'complete' },
        { icon: 'images/icon-playlist.svg', name: 'Recently Completed', filter: room => false },
        { icon: 'images/icon-playlist.svg', name: 'All Rooms', filter: room => true }
      ]
    }
  ],
  rooms: List(generateRooms())
}

Мне нужно сделать редуктор, который делает это:

state.roomList[n].expanded = !state.roomList[n].expanded

Я новичок в использовании рабочего процесса Redux, и лучший способ решить эту проблему - сделать roomList объектом immutable.js или написать некоторый код, чтобы сделать глубокий клон моего объекта состояния.

Также для state.roomList будут добавлены новые данные из будущих функций.

Лето / Вопрос: Каков наилучший способ вернуть новый объект состояния в редуктор при внесении таких изменений в этом состоянии, или мне следует изменить структуру объекта состояния Redux?

Что я сделал В конце концов, непреложным кажется путь. С Immutable есть несколько приемов, позволяющих сократить время рендеринга, и он отвечает всем требованиям проекта. Также достаточно рано в проекте использовать новую библиотеку без внесения серьезных изменений.

Ответы на вопрос(2)

Ваш ответ на вопрос