Unfortunately the documentation is very sparse :
https://facebook.github.io/immutable-js/docs/#/Map/getIn
Does anyone have an example? I am guessing tha
Shortly:
map.getIn(["a", "b", "c"])
is a shortcut to map.get("a").get("b").get("c")
In details:
You have probably got into one of the fromJS
traps. Calling :
const map = Immutable.fromJS({a: {b: {c: "banana"}}});
creates a Map
with only key a
, which's value is also a Map
with only key b
, which's value is also a Map
with only key c
and value banana
.
With other words fromJS
goes into the deep of the object provided, and defines Map
for each Object
and a List
for each Array
With this example, calling map.getIn(["a", "b", "c"])
is kind of a shortcut to map.get("a").get("b").get("c")
But if you define map
as a Map
:
const map = new Immutable.Map({a: {b: {c: "banana"}}});
it creates a Map, with only key a
, which's value is plain object {b: {c: "banana"}}
, and calling a map.get("a").get("b").get("c")
will throw you something like get is not a function
, since map.get("a")
will return {b: ...}
plain object.
Same reasons are why map.getIn(["a", "b", "c"])
will not work as you might expect.