nesneleri benim ilk redux durumu düşünüldüğünde ise:kompleks (derin) devlet
state.roomList[n].expanded = !state.roomList[n].expanded
Bir Redux kullanarak yeni am:
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())
}
Bunu yapan bir redüktör yapmak gerekir iş akışı ve bunu çözmenin en iyi yolu, immutable.js nesnesinin roomList olmasını veya durum nesnesinin derin bir klonunu oluşturmak için bir kod yazmasını sağlamaktır.
Ayrıca state.roomList, gelecekteki özelliklerden yeni verilere sahip olacak.
Summery/Soru: Reddet durum nesnesinin yapısını değiştirdiğimde, durum değiştiricisinde yeni bir durum nesnesini redükleyicide döndürmenin en iyi yolu nedir?
Ne yaptım Sonunda gidilemeyen bir yol gibi görünüyor. Tepki oluşturma süresini azaltmak için Immutable ile bazı hileler vardır ve tüm proje gereksinimlerini karşılar. Ayrıca projede büyük değişiklikler yapmadan yeni bir kütüphane kullanmak için yeterince erken.
Bir sorunuz var mı? –
Durumda bu kadar derin değişiklikler yaparken veya redux state nesnesinin yapısını değiştirmeliyken, redüktördeki yeni durum nesnesini döndürmenin en iyi yolu nedir? –