Добавить элемент в 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);