【问题标题】:Rename result property in normalizr在 normalizr 中重命名结果属性
【发布时间】:2020-11-28 01:33:36
【问题描述】:

给定的数据如下:

{
  id: 1,
  ownerName: 'bob',
  devices: [
    {
      id: 2
    },
    {
      id: 3
    }
  ]
}

如何将其转换为以下对象

{
  result: 1,
  entities: {
    owners: {
      1: {
        id: 1,
        ownerName: 'bob',
        deviceIds: [2, 3]
      }
    },
    devices: {
      2: {
        id: 2
      },
      3: {
        id: 3
      }
    }
  }
}

使用 normalizr?我不知道如何在返回的结果中将devices 更改为deviceIds...

【问题讨论】:

    标签: javascript normalizr


    【解决方案1】:

    您可以为此使用流程策略。它允许您在处理数据之前对其进行操作。只需返回对象的副本,其中的键从 processStrategy() 方法更改。

    const Device = schema.Entity('devices');
    
    const Owner = schema.Entity(
        'owners',
        {
            deviceIds: [ Device ]
        },
        {
            processStrategy: value => ({
                id: value.id,
                ownerName: value.ownerName,
                deviceIds: value.devices
            })
        }
    );
    

    【讨论】:

      猜你喜欢
      • 2017-11-09
      • 2017-11-24
      • 1970-01-01
      • 2012-07-25
      • 2013-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多