【发布时间】:2016-09-07 23:10:36
【问题描述】:
在使用 redux 和 react-redux 更新状态时,我似乎遇到了障碍。当我更新单个状态片段时,所有其他状态都会被删除。我知道这个问题的答案很简单,但我想不通,也没有在网上找到其他任何东西。
所以澄清一下,这是我的减速器:
const initialState = {
selectedLevel: null,
selectedVenue: null,
selectedUnitNumber: null,
selectedUnitName: null,
selectedYear: null
}
export default (state = initialState, action) => {
console.log('reducer: ', action);
switch (action.type){
case 'CHOOSE_LEVEL':
return action.payload;
case 'CHOOSE_VENUE':
return action.payload;
case 'CHOOSE_UNIT':
return action.payload;
case 'SHOW_COURSES':
return action.payload;
}
return state;
}
还有我的联合减速器:
export default combineReducers({
workshopSelection: WorkshopSelectReducer
});
所以我的初始状态是这样的:
workshopSelection: {
selectedLevel: null,
selectedVenue: null,
selectedUnitNumber: null,
selectedUnitName: null,
selectedYear: null
}
但是当我使用我的一个动作创建器时,例如:
export function chooseVenue(venue){
return {
type: 'CHOOSE_VENUE',
payload: {
selectedVenue: venue
}
}
}
我最终的状态是这样的:
workshopSelection: {
selectedVenue: 'London',
}
该对象中不受此动作创建者影响的所有其余状态已被完全清除。相反,我只希望所有其他条目保持其原始值 - 在此示例中为 null,或分配给它们的任何其他值。
希望一切都有意义。
干杯!
【问题讨论】:
标签: javascript reactjs redux react-redux