考虑以下示例:
const stickers =
new OrderedMap().set(1, {hero: "batman", name: "Bruce"});
stickers.getIn([1]); //=> { hero: 'batman', name: 'Bruce' }
stickers.getIn([1, "hero"]); //=> undefined
为什么第二次的结果是getIn
不明确的?
ImmutableJS 上的文档指出:
普通 JavaScript 对象或数组可以嵌套在 Immutable.js 集合中,并且 getIn() 也可以访问这些值
因此,可以得出结论,如果OrderedMap
是一个普通的 javascript 对象或一个 Immutable 集合 - 但是我们可以看到,如果我们首先将该普通对象转换为一个 Immutable 集合,该错误就会消失:
const stickers =
new OrderedMap().set(1, fromJS({hero: "batman", name: "Bruce"}));
stickers.getIn([1]); //=> { hero: 'batman', name: 'Bruce' }
stickers.getIn([1, "hero"]); //=> 'batman'
我相信这是因为您正在查看比您正在使用的库版本更新的文档。我刚刚使用版本 4.0.0-rc.9 尝试了您的代码,它按预期工作。
例如:
const stickers =
Immutable.OrderedMap().set(1, {
hero: "batman",
name: "Bruce"
});
console.log(stickers.getIn([1]));
console.log(stickers.getIn([1, "hero"])); //
<script src="https://cdnjs.cloudflare.com/ajax/libs/immutable/4.0.0-rc.9/immutable.js"></script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)