Javascript 在Redux reducer中前置到无名数组
我从API获取一个对象数组,并通过Redux将其存储在Javascript 在Redux reducer中前置到无名数组,javascript,json,reactjs,ecmascript-6,redux,Javascript,Json,Reactjs,Ecmascript 6,Redux,我从API获取一个对象数组,并通过Redux将其存储在articleDataprop中。道具的存储方式如下: 在我的reducer中,我想用另一个articleData对象作为这个数组的前缀。我要预先结束的对象存储在action.articleData中,但是我找不到一种方法来预先结束这个数组而不命名它。这是我的代码: export function articleData(state = {}, action) { switch (action.type) { cas
articleData
prop中。道具的存储方式如下:
在我的reducer中,我想用另一个articleData
对象作为这个数组的前缀。我要预先结束的对象存储在action.articleData
中,但是我找不到一种方法来预先结束这个数组而不命名它。这是我的代码:
export function articleData(state = {}, action) {
switch (action.type) {
case 'ARTICLE_FETCH_DATA_SUCCESS':
return action.articleData;
//HERE IS THE PROBLEM!
case 'ARTICLE_POST_NEW_ARTICLE_SUCCESS':
return {arr:[action.articleData, ...state]}
default:
return state;
}
}
它成功地预处理了新对象问题是:当我执行此代码时,它会将状态从对象数组更改为名为“arr”的数组。请参见图片:
我不知道如何在不给对象命名的情况下添加到对象数组中。如果我从reducer代码中删除arr:
,将导致语法错误
提前感谢任何愿意帮助我的人!:) articleData减速机的状态是一个数组。在
ARTICLE\u POST\u NEW\u ARTICLE\u SUCCESS
操作处理程序中,使用arr
属性-{arr:[action.articleData,…state]}
创建一个新状态,它是一个对象
相反,使用新的articleData
返回一个新数组,并将状态扩展到其中:
case 'ARTICLE_POST_NEW_ARTICLE_SUCCESS':
return [action.articleData, ...state]
此外,由于减速器的状态是数组,请将初始状态更改为空数组:
export function articleData(state = [], action) {
state是一个对象而不是数组此reducer的状态是数组。我不这么认为:state={}
是初始状态。存储的顶级状态通常是一个对象,但也可以是数组。这个reducers状态是他从API获得的articleData
数组。更新时,他需要返回一个数组,而不是一个对象。@BrettMerrifield-不在reducer的减速中-导出函数articleData(state={},action){
:)不应该state.articleData
存在?返回{…state,articleData:[action.articleData,…state.articleData]}