Добавить элемент в OrderedMap с помощью Immutable.js

Как я могу добавить элемент в конце OrderedMap?

Я старался

    this.boxes = this.boxes.setIn(data);

Спасибо за любую помощь

2 ответа

Решение

Один из возможных способов сделать это - использовать concat

var boxes = Immutable.OrderedMap({
  box1: {
    id:1
  },
  box2: {
    id:2
  }
});

var data = Immutable.fromJS({
  box3: {
    id:3
  }
});


var newBoxes = boxes.concat(data);
console.log(newBoxes.toJS());  

Распечатает:

Объект { box1: Объект { id: 1 }, box2: Объект { id: 2 }, box3: Объект { id: 3 } }

OrderedMap на самом деле не имеет "конца" как такового. Также, если вы хотите добавить элемент на карту, вам также понадобится ключ для него. Так что либо вы используете set метод добавления пары ключ-значение:

this.boxes = this.boxes.set(key,data);

Или вы конвертируете его в список, где вы можете добавить его в конец, а также поддерживать четкий порядок итераций, что означает, что вы получите "конец".

this.boxes = this.boxes.toList().push(data);
Другие вопросы по тегам