Javascript 还原程序未返回更新状态
我无法使减速器返回更新状态 操作(通过调试器确认)是一个对象数组,类似于:Javascript 还原程序未返回更新状态,javascript,reactjs,redux,spread-syntax,Javascript,Reactjs,Redux,Spread Syntax,我无法使减速器返回更新状态 操作(通过调试器确认)是一个对象数组,类似于:[{name:“test”},{name:“second_test”}] 我认为我的spread运算符一定出了问题,尽管我也在调试器中尝试了Object.assign(),这似乎返回了预期的结果 我的组件显然只是处于默认状态。这是我的代码。任何帮助都将不胜感激。谢谢大家! const initialState = { current: {}, all: [] } export default functi
[{name:“test”},{name:“second_test”}]
我认为我的spread运算符一定出了问题,尽管我也在调试器中尝试了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
}
}
我最近遇到了这个问题(正如您所描述的),我使用列出的包解决了这个问题 这种方法允许您委派繁重的状态不变性和嵌套状态更新。您应该发现这可以解决您的问题:
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
}
}
我最近遇到了这个问题(正如您所描述的),我使用列出的包解决了这个问题 这种方法允许您委派繁重的状态不变性和嵌套状态更新。您应该发现这可以解决您的问题:
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
}
}
谢谢,达克雷。我可能得试试。然而,这似乎很疯狂,因为这是必要的。就减速机而言,这是最简单的。“不变性”是一个独立的软件包吗?@mossexploding是的,我同意-我曾经在我的一个类似的减速机上看过一段时间,并且在一个附带项目中体验到与您完全相同的事情。使用此软件包立即解决了我的问题,因此我想与您分享这一经验:-)。是的,
immutability helper
是一个单独的包,但我发现它在简化我的简化程序方面非常有用谢谢,Dacre。我可能得试试。然而,这似乎很疯狂,因为这是必要的。就减速机而言,这是最简单的。“不变性”是一个独立的软件包吗?@mossexploding是的,我同意-我曾经在我的一个类似的减速机上看过一段时间,并且在一个附带项目中体验到与您完全相同的事情。使用此软件包立即解决了我的问题,因此我想与您分享这一经验:-)。是的,immutability helper
是一个单独的包,但我发现它在简化我的简化程序方面非常有用