【问题标题】:react redux reducer adding object to array in object反应redux reducer将对象添加到对象中的数组
【发布时间】:2019-10-02 19:20:50
【问题描述】:

我正在开发一个 react redux 应用程序。我有像

这样的状态对象
const initialState = {
  articles: []
};

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

{
    id:1,
    data:'data'
}

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

我试过了

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

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

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

【问题讨论】:

  • 请提供return之前的代码。我很好奇你的声明it ends up removing the existing items.。如果这是真的,就像说state.articles 发生了变异。

标签: reactjs redux


【解决方案1】:

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

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

您的操作应如何显示的示例:

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

【讨论】:

    【解决方案2】:

    在Reducer中使用immutable update pattern返回

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

    【讨论】:

      猜你喜欢
      • 2017-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多