Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.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_Arrays_Reactjs_React Redux - Fatal编程技术网

Javascript 如何在Redux reducer中将数组附加到数组中?

Javascript 如何在Redux reducer中将数组附加到数组中?,javascript,arrays,reactjs,react-redux,Javascript,Arrays,Reactjs,React Redux,假设我在减速器中有以下情况: 案例加载成功: 返回{ ……国家, 员额:[……有效载荷] } 此操作包含一个数组作为有效负载[{post_1}、{post_2}、{post_3}、{post4}、{post5}]。现在,如果再次触发此操作,则会发生以前的有效负载被新的有效负载替换的情况,这是正确的行为。 我要做的是将下一个调用追加到前面的posts数组中!因此,如果post数组已经是以下内容: 帖子:[ {post_1}, {post_2}, {post_3}, {post_4}, {post

假设我在减速器中有以下情况:

案例加载成功:
返回{
……国家,
员额:[……有效载荷]
}
此操作包含一个数组作为有效负载
[{post_1}、{post_2}、{post_3}、{post4}、{post5}]
。现在,如果再次触发此操作,则会发生以前的有效负载被新的有效负载替换的情况,这是正确的行为。
我要做的是将下一个调用追加到前面的
posts
数组中!因此,如果post数组已经是以下内容:

帖子:[
{post_1},
{post_2},
{post_3},
{post_4},
{post_5}
];
现在,随着更多数据的到来,我希望新数据再次附加到此帖子中(无论大小,我的意思是,如果新数组不包含5个元素):

帖子:[
{post_1},
{post_2},
{post_3},
{post_4},
{post_5},
{post_6},
{post_7},
{post_8},
{post_9},
{post_10}
];

现在,只有当这是在反应状态下,这可以通过使用以前的状态来完成,redux部分给我带来了麻烦

这可以用传递有效负载的相同方式完成。在执行数组反结构化时,可以传递多个数组

case POST_LOAD_SUCCESS:
        return {
            ...state,
            posts: [...state.posts, ...payload]
        }

如果您以前的状态具有posts键,则可以使用:

[...state, ...payload]
或许

[...state.posts, ...payload]

如果您以前的状态有一个posts键,您可以使用[…状态,…有效负载],或者[…状态.posts,…有效负载]。@YasserZubair是的,可以这样做!然而,它的另一面呢?你认为这会引起什么问题吗!因为我们直接使用状态!顺便说一句,这本身就是一个很好的解决方案@YasserZubair你能把你的评论作为回答吗!我会将它标记为一个答案,以便人们可以参考它!谢谢你的帮助!这不会改变这种状态,所以我知道没有副作用。