javascript - ¿Cómo puedo establecer un valor profundamente anidado en Immutable.js?
(1)
Los mapas en Immutable tienen un método setIn que hace que sea fácil establecer valores profundos:
peopleImmutable = peopleImmutable.setIn(["Thomas", "nickname"], "Mr. T");
O bien, usando split
para generar la matriz:
peopleImmutable = peopleImmutable.setIn("Thomas.nickname".split("."), "Mr. T");
Al trabajar con objetos JavaScript simples, es fácil cambiar una propiedad de objeto anidada profundamente:
people.Thomas.nickname = "Mr. T";
Pero con Immutable tengo que pasar por los antepasados de cada propiedad antes de tener un nuevo objeto de personas:
var thomas = peopleImmutable.get("Thomas");
var newThomas = thomas.set("nickname", "Mr .T");
peopleImmutable = peopleImmutable.set("Thomas", newThomas);
¿Hay alguna forma más elegante de escribir esto?