immutable.js嵌套阵列更新素



我想利用不变的功能来从这种结构中更新我的结构,但我对如何做不确定。我的标签不应该是一个数组,而应该成为仅用于发布我的REST API的对象。

有几个有关如何更新深度属性和嵌套数组的示例,但是我想更改值2阵列。

order: {
  createDate: '2016-08-07',
  pickupDate: '2017-02-02',
  items: [
    {
      price: '25',
      tags: [
        'Blue',
        'Pants'
      ]
    }
  ]
}

这个结构

order: {
  createDate: '2016-08-07',
  pickupDate: '2017-02-02',
  items: [
    {
      price: '25',
      tags: [
        {
          text: 'Blue'
        },
        {
          text: 'Pants'
        }
      ]
    }
  ]
}

类似的东西:

const { fromJS, Map } = require("immutable")
const obj = fromJS({
    order: {
        createDate: '2016-08-07',
        pickupDate: '2017-02-02',
        items: [
            {
                price: '25',
                tags: [
                    'Blue',
                    'Pants'
                ]
            }
        ]
    }
})
const items = obj
    .getIn(['order', 'items'])
    .map((item) => {
        const newTags = item
            .get('tags')
            .map((tag) => ({ text: tag }));
        return item.set('tags', newTags);
    });
const newMap = obj.setIn(['order', 'items'], items);

最新更新