まもなく:
map.getIn(["a", "b", "c"])
を詳細にmap.get("a").get("b").get("c")
へのショートカットです:
おそらくfromJS
トラップの一つになっています。呼び出し:
const map = Immutable.fromJS({a: {b: {c: "banana"}}});
は値の唯一のキーa
、とMap
を作成することも、唯一の鍵c
と値banana
とMap
ある値です、また、唯一のキーb
とMap
です。すなわちfromJS
で
提供物体の深部に入り、この例では、各Object
と各Array
ためList
ためMap
を定義し、map.getIn(["a", "b", "c"])
を呼び出すとmap.get("a").get("b").get("c")
へのショートカットの一種でありますしかし、map
をMap
と定義した場合:
const map = new Immutable.Map({a: {b: {c: "banana"}}});
キーをa
というキーで作成します。その値は普通のオブジェクト{b: {c: "banana"}}
です。get is not a function
のようなものを投げてmap.get("a").get("b").get("c")
を呼び出します。map.get("a")
は平文オブジェクト{b: ...}
を返します。
同じ理由で、map.getIn(["a", "b", "c"])
は期待通りに機能しません。