【问题标题】:Composing Nested Reducers on Same Level在同一级别上组合嵌套减速器
【发布时间】:2019-01-01 02:19:00
【问题描述】:

我希望由 Person reducer 和 Address reducer 管理以下 redux 状态:

{
  person: {
    name: 'John Doe',
    address: {
      street: '123 Main Street',
      ...
    }
}

我尝试过使用combineReducerreduceReducer,但无法获得预期的结果。

理想情况下,person reducer 直接管理其下的属性,而 address 也一样。

我错过了什么?

【问题讨论】:

  • 到目前为止你得到了什么?请分享您的代码。顺便说一句,如果你扁平化你的状态,你会发现它更容易,所以你会有一个状态部分和一个地址部分,由 ids 链接。

标签: reactjs redux


【解决方案1】:

听起来您正在寻找 2 个减速器之间的关系。可以考虑normalizing the state shape

规范化的Person reducer 可能如下所示:

{
  persons: {
    byId: {
      person1: {
        id: 'person1',
        name: 'John Doe',
        address: 'address1'
      }
    }
  }
}

Address 变为:

{
  addresses: {
    byId: {
      address1: {
        id: 'address1',
        street: '123 Main Street',
        // ....
      }
    }
  }
}

【讨论】:

    猜你喜欢
    • 2020-07-07
    • 2016-04-16
    • 2019-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-05
    • 1970-01-01
    相关资源
    最近更新 更多