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