gpt4 book ai didi

javascript - 为什么 Immutable.js 在 Map.setIn() 上抛出无效的键路径

转载 作者:可可西里 更新时间:2023-11-01 01:16:13 25 4
gpt4 key购买 nike

我一定是遗漏了什么,因为 Docs让它看起来好像下面的代码应该工作得很好但是我得到一个无效的键路径错误...检查this codepen .

var map1 = Immutable.Map({ 'selector': { 'type': 'bar' }});
var map2 = map1.setIn(['selector', 'type'], 'foo');
console.log(map2.toJS());

最佳答案

发生这种情况是因为键 'selector' 具有非 Map 值。如果我们确保 'selector' 的值也是一个 Immutable Map,setIn 将起作用:

var map1 = Immutable.Map({ 'selector': Immutable.Map({ 'type': 'bar' })});
var map2 = map1.setIn(['selector', 'type'], 'foo');
console.log(map1.toJS());
console.log(map2.toJS());
<script src="https://cdnjs.cloudflare.com/ajax/libs/immutable/3.8.1/immutable.js"></script>

要将 JavaScript 对象和数组深度转换为映射和列表,您可以使用 fromJS() .所以你可以更容易地写:

var map3 = Immutable.fromJS({ 'selector': { 'type': 'bar' }});
var map4 = map3.setIn(['selector', 'type'], 'foo');
console.log(map3.toJS());
console.log(map4.toJS());
<script src="https://cdnjs.cloudflare.com/ajax/libs/immutable/3.8.1/immutable.js"></script>

关于javascript - 为什么 Immutable.js 在 Map.setIn() 上抛出无效的键路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37712871/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com