0

我正嘗試用切換按鈕更新我的Redux狀態。我的LB減速機由2個減速機組成,一個稱爲listItems的數組用於顯示唯一數量的數值,以及filterBarState用作當前過濾器的參考。REDX狀態樹上的重複項目

雖然我的初始狀態是正確的,我減速則以filterBarState Redux Logger

下面外面的切換動作是我的LB對象減速

export default (state = INITIAL_STATE, action) => { 
    switch (action.type) { 
    case EVENT_FILTER_PRESSED: 
     return { 
     // Reducer composition 
     filterBarState: eventFilter(state.filterBarState, action), 
     listItems: eventItems(state.listItems, action) 
     }; 
    case MALE_FILTER_PRESSED: 
     // console.log('isMaleFilterOn:', action.isMaleFilterOn) 
     return { ...state, isMaleFilterOn: action.isMaleFilterOn }; 
    case FEMALE_FILTER_PRESSED: 
     // console.log('isFemaleFilterOn:', action.isFemaleFilterOn) 
     return { ...state, isFemaleFilterOn: action.isFemaleFilterOn }; 

在我的陣營本地容器組件,我已經嘗試了一些(嫌疑人)ES6解構mapStateToProps其中,如果我不包括,整個filterBarState返回undefined

const mapStateToProps = ({ LB }) => { 

    const { filterBarState: { isMaleFilterOn, isFemaleFilterOn, currentSelectedEvent, currentSelectedRow }, listItems, isCurrentlySelected } = LB; 

    return { isMaleFilterOn, isFemaleFilterOn, currentSelectedEvent, currentSelectedRow, listItems, isCurrentlySelected }; 

有關修復的任何提示/建議將不勝感激!

回答

2

基於EVENT_FILTER_PRESSED處理程序,它看起來好像沒有在正確的級別更新isMaleFilterOnisFemaleFilterOn。試試這個:

export default (state = INITIAL_STATE, action) => { 
    switch (action.type) { 
    case EVENT_FILTER_PRESSED: 
     return { 
     // Reducer composition 
     filterBarState: eventFilter(state.filterBarState, action), 
     listItems: eventItems(state.listItems, action) 
     }; 
    case MALE_FILTER_PRESSED: 
     // console.log('isMaleFilterOn:', action.isMaleFilterOn) 
     return { ...state, filterBarState: { ...state.filterBarState, isMaleFilterOn: action.isMaleFilterOn } }; 
    case FEMALE_FILTER_PRESSED: 
     // console.log('isFemaleFilterOn:', action.isFemaleFilterOn) 
     return { ...state, filterBarState: { ...state.filterBarState, isFemaleFilterOn: action.isFemaleFilterOn } }; 
} 
+0

感謝您修復@loganfsmyth :) –

+0

感謝Michael和loganfsmyth !! – Chris