首页 > 解决方案 > 更新/添加嵌套 redux 状态的最佳方法

问题描述

我正在使用带有 redux 的 react native,我的 UI 可以使用以下格式增加 attr 的值

{
  'page1': {
    'attrs': [
      {
        'attr1': {
          'value': 10
        }
      },
      {
        'attr2': {
          'value': 20
        }
      }
    ]
  }
}

添加attr的三种情况:

  1. 如果attr,例如'attr2'已经存在,增加它的值
  2. 如果 attr,例如 'attr3' 不存在,添加一个新的 attr
  3. 如果页面,例如“page2”不存在,添加一个新页面,然后添加一个新属性

空值检查和循环列表将是很多逻辑。有什么速记或最好的方法吗?

标签: react-nativereact-reduximmutable.jsramda.js

解决方案


我认为您可以稍微改进您的数据结构以使更新更容易。在您的情况下,“attrs”不需要是一个数组。你可以这样做:

{
    "page1": {
      "attrs": {
        "attr1": 10,
        "attr2": 20,
        "attr3": 30
      }
    }
}

所以测试一个属性是否存在应该像这样简单

if(page1.attrs[atrrName]) {...}

推荐阅读