鑑於我最初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
我是新來使用終極版工作流程和解決此問題的最佳方法是將roomList作爲immutable.js對象或編寫一些代碼以對我的狀態對象進行深層克隆。
此外,state.roomList將從未來的功能中推送新的數據。
總結/問題:當在狀態較深的狀態下進行更改時,還原器中返回新狀態對象的最佳方式是什麼?還是應該更改Redux狀態對象的結構?
我做了什麼最終Immutable似乎是要走的路。使用Immutable有一些技巧可以減少反應渲染時間並滿足所有項目要求。此外,在項目中使用新的庫並不做重大更改已經足夠早了。
您有問題要問? –
當在狀態較深的狀態下進行更改時,還原器中返回新狀態對象的最佳方法是什麼?還是應該更改Redux狀態對象的結構? –