反应redux reducer将对象添加到对象中的数组

时间:2019-05-15 15:25:37

标签: reactjs redux

我正在使用React Redux应用程序。我有像这样的状态对象

const initialState = {
  articles: []
};

“文章”中的每个项目都像

{
    id:1,
    data:'data'
}

我需要在不删除数组中现有对象的情况下将另一个对象添加到数组中。

我尝试了

return {...state,articles: [...state.articles] };

在我的减速器中,但最终会删除现有项目。

应该怎么做才能不删除现有项目?

2 个答案:

答案 0 :(得分:0)

在减速器中,使用immutable update pattern返回

return { ...state, articles: action.payload.data };
有关reducer immutable pattern的更多信息。

答案 1 :(得分:0)

您应该像以前那样将当前文章分散到一个新数组中,并从操作中添加有效载荷。

return { ...state, articles:  [...state.articles, payload] }

有关您的操作外观的示例:

export function addArticle(article) {
    return { type: "ADD_ARTICLE", payload: { article } };
}