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你能把你的评论作为回答吗!我会将它标记为一个答案,以便人们可以参考它!谢谢你的帮助!这不会改变这种状态,所以我知道没有副作用。