Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Redux reducer中前置到无名数组_Javascript_Json_Reactjs_Ecmascript 6_Redux - Fatal编程技术网

Javascript 在Redux reducer中前置到无名数组

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

我从API获取一个对象数组,并通过Redux将其存储在
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]}