Objetos de estado complexo (profundo) React-Redux

Dado meu estado inicial de 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())
}

Eu preciso fazer um redutor que faça isso:

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

Eu sou novo no uso de um fluxo de trabalho Redux e a melhor maneira de resolver isso é transformar o roomList em um objeto immutable.js ou escrever algum código para criar um clone profundo do meu objeto de estado.

Além disso, state.roomList terá novos dados enviados a partir de recursos futuros.

Verão / Pergunta: Qual é a melhor maneira de retornar um novo objeto de estado em um redutor ao fazer alterações como essa profundamente no estado, ou devo alterar a estrutura do objeto de estado Redux?

O que eu fiz No final, imutável parece o caminho a percorrer. Existem alguns truques com o Imutável para reduzir o tempo de renderização da reação e ele atende a todos os requisitos do projeto. Também é cedo o suficiente no projeto para usar uma nova biblioteca sem fazer grandes alterações.

questionAnswers(2)

yourAnswerToTheQuestion