不幸的是,文档非常稀疏:
https://facebook.github.io/immutable-js/docs/#/Map/getIn
有没有人有例子?我猜测如果我有像这样的myObject:
a: {
b:{
c:"banana"
}
}
这
myObject.getIn([“a”,“b”,“c”])
将返回香蕉。
然而,不可变对象也可以是映射对象,这让我彻底迷茫。
答案 0 :(得分:21)
很短:
${__counter(FALSE,)}
是map.getIn(["a", "b", "c"])
详细信息:
你可能已经进入了map.get("a").get("b").get("c")
个陷阱之一。致电:
fromJS
仅使用键const map = Immutable.fromJS({a: {b: {c: "banana"}}});
创建Map
,其值也是a
,只有键Map
,其值也是b
,只有Map
键c
和值banana
。
使用其他字词fromJS
进入所提供对象的深处,并为每个Map
定义Object
,为每个List
定义Array
通过此示例,调用map.getIn(["a", "b", "c"])
是map.get("a").get("b").get("c")
但是,如果您将map
定义为Map
:
const map = new Immutable.Map({a: {b: {c: "banana"}}});
它创建了一个Map,只有键a
,其值是普通对象{b: {c: "banana"}}
,而调用map.get("a").get("b").get("c")
会引发类似get is not a function
的内容,因为map.get("a")
1}}将返回{b: ...}
普通对象。
同样的原因是map.getIn(["a", "b", "c"])
无法正常工作的原因。