我无法使我的减速器返回更新状态。
操作(已通过调试器确认)是一个对象数组-类似于:[{name: "test"}, {name: "second_test"}]
尽管我也在调试器中尝试过Object.assign()
,但似乎返回了预期的结果,我的传播运算符肯定有问题。
我的组件显然只是处于默认状态。这是我的减速器代码。任何帮助,将不胜感激。谢谢!
const initialState = {
current: {},
all: []
}
export default function deckReducer(state = initialState, action) {
switch(action.type) {
case 'CREATE_DECK':
return {...state, all: [...state.all, action.payload]}
case 'FETCH_DECKS':
debugger;
return {...state, all: action.payload}
default: return state
}
}
答案 0 :(得分:0)
我最近(正是您所描述的)遇到了这个问题,并且我使用列出的immutability-helper
的here on the ReactJS docs程序包解决了该问题。
此方法使您可以委派繁重的状态不变性和嵌套状态更新。您应该发现这可以解决您的问题:
import update from 'immutability-helper';
const initialState = {
current: {},
all: []
}
export default function deckReducer(state = initialState, action) {
switch(action.type) {
case 'CREATE_DECK': {
/* Add payload to nested state.all list */
return update(state, { all : { $push : [action.payload] }});
}
case 'FETCH_DECKS': {
/* Replace state.all with incoming payload */
return update(state, { all : { $set : action.payload }});
}
default: return state
}
}